我想知道如何“洗牌”我的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之间吐出一个随机数,但是我收到一条错误,指出“未定义连接”。
提前感谢您花时间阅读/协助我。
答案 0 :(得分:0)
为什么不呢:
var rnd = Math.floor(Math.random()*6+1)*10+Math.floor(Math.random()*6+1)