2017-01-27 8 views
0

私は複数のプレイヤーを持つJavaScriptアプリケーションを持っていて、各プレイヤーには100個のコンピュータ生成の数学の質問があります。シングルプレイヤーモードでForループを使用して2つの配列に同じ情報をプッシュ

それはただ一人のプレイヤーのための質問を生成し、簡単です。

var player1Qs = []; 
for (i = 0; i < maxQustions; i++) { 
    // Generate Question Object 
    var question = {}; 
    ... 
    // Add to Array 
    player1Qs.push(question); 
} 

なしの問題で動作します。しかし、上記のような考え方を使って2人目のプレイヤーをミックスに追加すると、少し混乱します。私はできるだけシンプルにしようとしているので、多次元配列を使わずにそれをやろうとしていますが、やむを得ないかもしれません。

だから、プレイヤー2は、これに似たものになります。私は、forループを使用して動的にこれら二つのアレイに追加する方法があるだろう

var player1Qs = []; 
var player2Qs = []; 
for (i = 0; i < playerCount; i++) { 
    for (j = 0; j < maxQustions; j++) { 
     // Generate Question Object 
     var question = {}; 
     ... 
     // Add to Array 
     ??? 
    } 
} 

を?または、私は、プレイヤーの配列を含む必要があり、その内部に質問のための配列ですか?このような

+0

あなたが質問の同じセットを追加したいですか? –

+0

2つの配列しかない場合は、この2つの配列にプッシュするだけです。それ以上あれば、私は選手の配列を作ることを提案して、この配列をループしてプッシュすることを提案します。 – Fif

+0

"あるいは、プレイヤーの配列が必要なのでしょうか?その質問の中に配列がありますか? - はい –

答えて

2

何かがトリックを行う必要があります。

// Make sure all players exist. 
var players = []; 
for (var i = 0; i < playerCount; i++) { 
    players.push({ name: "Player " + i, questions: [] }); 
} 

// Create questions 
for (var i = 0; i < maxQuestions; i++) { 
    // Generate Question Object 
    var question = {}; 
    // Do stuff with this question 

    // Assign the current question to all players. 
    for (var j = 0; j < playerCount; j++) { 
     players[j].questions.push(question); 
    } 
} 
+0

ダブルチェックするだけで、各プレイヤーに同じ質問が追加されますか?私はちょうどダブルチェックをしたいと思ったが、それは見えるだろうか? –

+0

さて、 'i Cerbrus

+0

ありがとう - 私はこれを行く:) –

-2

は、このアプローチに従う、私はあなたがダイナミックな選手とその配列を持っていると仮定します -

var data = {}; 
var player = [1,2] 
var c = [1,2,3,4,5] 

    for(j=0;j<player.length;j++) 
    { 
    data['players'] = player; 
    data['questions'] = c 
    } 

console.log(data) 
+0

私はいつもセカンドプレーヤーを持っているとは限りません - 時には1人のプレイヤーと1人のCPU相手しか持たない - だから私は2回目のプッシュを避けようとしています –

+0

ok checkout私の編集した回答 –

+0

なぜあなたはそこにループ?ループの反復ごとに異なる処理をしています。 – Cerbrus

0

私はそれを行うにtryinngよできるだけシンプルに保つために多次元配列を使用せずに

私はあなたがあなたの質問に提案するように、2次元配列を持つことが、最も簡単なユースケースであることを主張するだろう:

や質問の配列 ことを私は選手たちの内部含む配列が必要でしょうか?

答えは「はい」です(少なくとも単純にしたい場合は)。プレイヤーアレイはすべてのプレイヤーを保持し、各プレイヤーはそれぞれ100個の質問を持つことができます。

var maxQustions = 100; 
 
var players= [] 
 
var player1Qs = []; 
 
var player2Qs = []; 
 
players.push(player1Qs); 
 
players.push(player2Qs); 
 
for (i = 0; i < players.length; i++) { 
 
    for (j = 0; j < maxQustions; j++) { 
 
    var question = {}; 
 
    players[i].push(question); 
 
    } 
 
}

関連する問題