2012-05-03 4 views
0

저는 현재 사용자가 많은 양의 이미지를 클릭 할 수있는 게임을 만들고 있습니다. 그들이 클릭하는 이미지에 따라 다른 일이 일어날 것입니다. 나는 이전의 질문을 보았고 그들은 모두 "어떻게 배열 안의 항목을 무작위로 선택합니까?"라고 묻는 것 같습니다. 그러나, 나의 것은 이것들과 약간 다릅니다. 미안해, 내 대답이 어딘가에 있다고 생각한다면. 그러나 어쨌든!배열을 임의로 선택하려면 어떻게합니까?

내 질문은 간단합니다 :

어떻게 배열을 임의로 선택합니까? 지금까지의 코드는 정수가 배열 내에 존재 하는지를 확인할 수있는 함수를 포함하고 있습니다. 지금까지 내 코드입니다.

//The array below contains the integers. 
example=new Array(1,2,3); 


//The function below checks whether 'image' (which is an integer) is the same as any integers within the example array. 

function isItThere(obj) { 
    var j = false; 
    for (var i = 0; i < example.length; i++) { 
     if (example[hits] == obj) { 
      j = true; 
      break; 
     } 
    } 
    return j; 
} 
//This is the IF statement I have used. After the integer associated with 'image' has been passed through the 'isItThere' function either A or B will happen. (A happens if the number exists). 
if(isItThere(image)){ 

현재이 모든 것이 완벽하게 작동합니다. 그것이 가장 효율적인 방법은 아닐지도 모르지만, 지금까지 내가 원했던 것을 성취합니다.

하지만 이제는 정수가 들어있는 배열이 여러 개 필요합니다. 이것은 사용자가 게임을 다시로드하면 그들이 누를 이미지를 정확히 알기 때문입니다. 따라서 여러 배열을 만들고 싶습니다. 그 중 하나는 게임 시작시 무작위로 선택됩니다. 예를 들어

..

example0=new Array(1,2,3); 
example1=new Array(4,5,6); 
example2=new Array(7,8,9); 

은 내가 다음 코드를 사용한다 생각합니다.

var num=Math.floor(Math.random()*3); 

그런 다음 그 번호를 'example'단어에 연결하십시오. 그것은 임의의 배열의 선택에 다루는 isItThere 같이

그런 식으로, 내 코드

if(isItThere(image)){ 

의이 부분은 동일하게 유지 할 수 있습니다.

바라건대 내가 묻고 자하는 것을 얻을 수 있기를 바랍니다. 나는 가능한 한 서술 적으로 노력했다. 다시 한번 요약하면 게임이 시작될 때 하나의 배열을 선택하여 게임을 여러 번 재생할 수 있기를 원합니다. 필요한 코드를 작성할 수 있습니까? 나는 매우 단순한 느낌이 들었다. 그러나 ive는 일 보는 것을 보냈다. 도움을

감사합니다 :)

+0

는 * 배열 만들기 * 배열의 무작위 중 하나를 선택합니다. 참조 : [배열에서 무작위 값 얻기] (http://stackoverflow.com/questions/4550505/getting-random-value-from-an-array). * 컬렉션 *을 가질 때마다 배열이나 객체를 사용하여 관리합니다. –

+0

복제본 선택 [임의 함수 선택] (http://stackoverflow.com/questions/9791853/select-random-function) –

답변

2

방법이 상위 배열을 참조하여 다음 상위 배열을하고는 어떻습니까?

var childArray1 = [1,2,3], 
childArray2 = [4,5,6], 
childArray3 = [7,8,9], 
parentArray = [childArray1, childArray2, childArray3]; 

또한 parentArray.push (childArray1)를 추가 할 수 있습니다;, 어느 쪽이 당신에게 더 잘 어울립니다.

+0

남자가 방금 내 문제를 해결했습니다! 고맙습니다! 그래서 예, 사람들이 지금 나와 같은 문제를 겪고 있다면 - Zvonas 대답을하십시오. – user1371984

0

당신은 배열의 배열을, 선택 무작위로해야

var myArray = [ 
    [1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9], 
]; 

var theArray = myArray[Math.random() * 3)]; 
+0

내가 여기서 뭔가 잘못하고 있는지 나는 모른다.하지만 내가 너의 대답을 사용한다면. 내가 내 코드를 function inArray (obj) { var j = false로 변경하는 것이 맞습니까? (var hits = 0; for theArray.length; hits ++) { if (theArray [hits] == obj) { j = true; 단절; } } return j; } 이렇게하면 버튼을 더 이상 클릭 할 수 없게됩니다./ – user1371984

+0

예, 실제로 작동 할 것입니다. 사실 @ zvona와 동일한 대답이지만, 여러 childArrays 대신에 직접 작성했습니다. 부모의. 그리고 myArray는 @ zvona의 parentArray와 동일합니다. –

관련 문제