내 2 차원 어레이를 "섞어"버리는 방법이 궁금합니다. 나는 메모리 매치 플립 카드 게임을 만들고 있으며 도움이나 올바른 방향으로 밀고 나가는 것에 감사 할 것입니다.(자바 스크립트) 이미지의 2 차원 배열을 무작위로 변환하려면 어떻게해야합니까?
내 2 차원 배열은 내가하고 싶은 것은 내 2 차원 배열의 형식이 임의의 정수 쌍을 뱉어 함수를 만들 수있는 좁은 그리드
에서 이미지의 6 "수준"으로 구성되어 있습니다. 예를 들어
이 내 배열 : 그래서 내 이미지로 div의에 저장됩니다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];
}
; 이 패턴은 2d 배열의 6 개 레이어가 있기 때문에 61, 62, 63, 64, 65 및 66까지 1 씩 증가합니다.
그래서 내가하고 싶은 것은 배열을 랜덤 화하고 숫자를 새로운 배열로 다시 연결하는 변수를 만드는 것입니다.
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를 읽으십시오. 또한 배열의 모양이 의심스러워서 왜 모두 비슷합니까? 왜 똑같은 것을 많이 필요로합니까? 그것은 잘못 느낀다. –