2014-10-29 1 views
0

자바 스크립트 메모리 게임을 만들고 있는데 실제로 작동하지만 이미지를 임의의 순서로로드하려고합니다. 내가 어떻게 해야할지 모르겠다.내 메모리 게임에서 이미지를 임의로 셔플하면 어떻게됩니까?

var easyImages = ["img/bat.jpg", "img/bug.jpg", "img/cat.jpg", "img/dog.jpg", 
    "img/bat.jpg", "img/bug.jpg", "img/cat.jpg", "img/dog.jpg"]; 

var hardImages = ["img/bat.jpg", "img/bug.jpg", "img/cat.jpg", "img/dog.jpg", 
    "img/frog.jpg", "img/fly.jpg", "img/bat.jpg", "img/bug.jpg", 
    "img/cat.jpg", "img/dog.jpg", "img/frog.jpg", "img/fly.jpg"] 

var imagesToShow; 

var imagesContainer = document.getElementById("images-container"); 

var questionMark = "img/memory-bg.jpg"; 


if (selectedDifficulty == "easy") { 
    imagesToShow = easyImages; 
} 

else if (selectedDifficulty == "hard") { 
    imagesToShow = hardImages; 
} 

imagesContainer.innerHTML = ""; 

if (imagesToShow !== "") { 
    for (var i = 0; i < imagesToShow.length; i++) { 
     var img = document.createElement("img"); 

     img.addEventListener("click", flipImage); 

     img.src = questionMark; 

     img.dataset.img = imagesToShow[i]; 

     imagesContainer.appendChild(img); 
    } 
} 
+0

난수 생성기를 사용하여 위치를 생성 해보세요. – brso05

+0

참조 : http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle –

+0

자바 스크립트 솔루션은 여기에 있습니다. http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a- 자바 스크립트 배열 – Kyslik

답변

0

아마 같은 것을 : 당신은 다음 표시 할 이미지가 다른 배열을 만들고, 수

var easyImages = ["img/bat.jpg", "img/bug.jpg", "img/cat.jpg", "img/dog.jpg", 
"img/bat.jpg", "img/bug.jpg", "img/cat.jpg", "img/dog.jpg"]; 

var number_of_numbers=10 
while(easyImages.length < number_of_numbers){ 
    var randomnumber=Math.ceil(Math.random()*100) 
    var found=false; 
    for(var i=0;i<easyImages.length;i++){ 
    if(easyImages[i]==randomnumber){found=true;break} 
    } 
    if(!found)easyImages[easyImages.length]=randomnumber; 
} 
0

는 난수 생성기를 사용

은 현재 모습입니다 해당 배열의 무작위로 생성 된 인덱스를 표시하려면 임의의 범위를 배열의 길이로 설정해야합니다. 그렇지 않으면 인덱스 밖으로 숫자가 반환됩니다. 그런 다음 배열의 해당 위치에있는 이미지 요소를 제거하여 표시되지 않은 그림 만 남겨 둡니다.