2012-05-03 12 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)){ 

現在、これはすべて正常に動作します。それが最も効率的な方法ではないかもしれないと認めていますが、今まで私が望んでいたことを達成します。

しかし、整数を含む複数の配列が必要になりました。これは、ユーザーがゲームをリロードすると、勝つためにどの画像を押すかを正確に知っているからです。私はいくつかの配列を作成したいと思います。そのうちの1つは、ゲームの始めにランダムに選択されます。例えば

..

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)){ 

は、同じ滞在することができます。

私が尋ねようとしているものが得られたらと思っています。私は可能な限り記述的にしようとしました。もう一度要約すると、ゲームの開始時に1つの配列を選択して、ゲームを複数回再生できるようにしたいと考えています。私は必要なコードを書くことができますか?私はとてもシンプルな気分です。しかし、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

ここで何か間違っているのかどうかわかりません。しかし、もし私があなたの答えを使うならば。私は自分のコードを の関数inArray(obj){ var j = falseに変更するのが正しいでしょうか。 for(var hits = 0;ヒットする user1371984

+0

はい、実際には動作しますが、実際には@ zvonaと全く同じですが、複数のchildArraysを持つ代わりに、親。私の 'myArray'は@ zvonaの' parentArray'と同じです。 –