(Javascript)如何随机化二维图像数组?

时间:2013-10-16 03:31:50

标签: javascript arrays random

我想知道如何“洗牌”我的2D阵列。我正在创建一个记忆匹配的翻转卡游戏,并希望得到一些帮助或推动正确的方向。

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

我想要做的是创建一个函数,以我的2d数组的格式吐出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。 由于2d阵列有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之间吐出一个随机数,但是我收到一条错误,指出“未定义连接”。

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

1 个答案:

答案 0 :(得分:0)

为什么不呢:

var rnd = Math.floor(Math.random()*6+1)*10+Math.floor(Math.random()*6+1)