我想知道如何「洗牌」我的2D陣列。我正在創建一個記憶匹配翻牌遊戲,並希望得到一些幫助或推動正確的方向。(Javascript)我如何隨機化一個2D圖像數組?
我的二維陣列由6在6x6的網格
圖像的「級別」我想要做的就是創建一個吐出對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. 該模式以1的增量繼續到61,62,63,64,65和66,因爲有2層陣列的6層。
所以我想要做的是創建一個變量,它隨機化數組並將數字拼接回新數組。
我想這個做我自己,這就是我想出了:
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];
我期望這將通過對66吐出11之間的隨機數,但我得到一個錯誤,指出「連接被沒有定義的」。
非常感謝您花時間閱讀/幫助我。
你的意思'ImgLocArrayGM.join()'? – akonsu
如果你不需要如何所有數組混洗之間的一致性,請閱讀以下問題:http://stackoverflow.com/questions/2450954。另外,你的陣列看起來像一個懷疑:他們爲什麼都一樣?你爲什麼需要這麼多相同的東西?感覺不對。 – 2013-10-16 09:03:27