2012-05-03 3 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); 

И как-то связать этот номер с словом «пример».

Таким образом, эта часть моего кода

if(isItThere(image)){ 

может остаться таким же, как это isItThere, что имеет дело с выбором случайного массива.

Надеюсь, вы получите то, о чем я прошу. Я старался быть настолько наглядным, насколько это возможно. Чтобы подвести итог еще раз, я хочу иметь возможность выбрать один массив в начале игры, чтобы игра могла воспроизводиться несколько раз. Можете ли вы написать код, который мне нужен? У меня такое чувство очень простое. Но я провел дни, глядя.

Спасибо за помощь :)

+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

Человек, который вы только что решили мою проблему! Спасибо! Так что да, если у людей сейчас есть такая же проблема, как у меня, - ответит Звонас. – 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; for (var hits = 0; hits user1371984

+0

Да, это должно сработать, на самом деле это тот же ответ, что и @zvona, но вместо того, чтобы иметь несколько дочерних элементов, я непосредственно создал их в родитель. И мой «myArray» идентичен «parentArray» @ zvona. –

Смежные вопросы