0

我想知道如何“洗牌”我的二维数组。我正在创建一个记忆匹配翻牌游戏,希望能得到一些帮助或朝着正确的方向前进。

我的二维数组由 6x6 网格中的 6 个“级别”图像组成

我想要做的是创建一个函数,它以我的二维数组的格式吐出成对的 2 个随机整数。

例如,这是我的数组:

var imgArray = [['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png'], 
['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png'], 
['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png'], 
['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png'], 
['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png'], 
['a.png', 'b.png', 'c.png', 'd.png', 'e.png', 'f.png', 'g.png']];


function onClickCard(image)
{
    image.src=imgArray[parseInt(image.name.substring(0, 1)) - 1][parseInt(image.name.substring(1, 2)) - 1];

}

所以我的图像保存在 div 中;11、12、13、14、15 和 16。由于二维数组有 6 层,此模式以 1 的增量一直持续到 61、62、63、64、65 和 66。

所以我想要做的是创建一个变量来随机化数组并将数字拼接回一个新数组。

我自己尝试这样做,这就是我想出的:

            var ImgLocArrayRow1 = new Array(11,12,13,14,15,16);
        var ImgLocArrayRow2 = new Array(21,22,23,24,25,26);
        var ImgLocArrayRow3 = new Array(31,32,33,34,35,36);
        var ImgLocArrayRow4 = new Array(41,42,43,44,45,46);
        var ImgLocArrayRow5 = new Array(51,52,53,54,55,56);
        var ImgLocArrayRow6 = new Array(61,62,63,64,65,66);
        var ImgLocArrayGM = new Array(ImgLocArrayRow1, ImgLocArrayRow2,       ImgLocArrayRow3, ImgLocArrayRow4, ImgLocArrayRow5, ImgLocArrayRow6);
var ArrayString = join(ImgLocArrayGM);
var Randomizah = Math.floor(Math.random() * ArrayString.length - 1, 0);
var RandomizahRegulatah = imgArray.splice(Randomizah, 1)[ImgLocArrayGM];

我希望这会吐出一个介于 11 到 66 之间的随机数,但我收到一条错误消息,指出“未定义连接”。

提前感谢您花时间阅读/帮助我。

4

1 回答 1

0

为什么不只是这样:

var rnd = Math.floor(Math.random()*6+1)*10+Math.floor(Math.random()*6+1)
于 2013-10-16T03:43:22.853 回答