2016-07-18 3 views
1

基本的に私は、次があります。サイモンゲームメカニズム(Javascriptを) - シーケンス入力

1)ゲームは、ランダムに20ランダムシーケンスに

2を事前に選択します)ゲームは、clickイベントリスナー

をオフにします

3)ゲームは、ユーザが.buttons

を介して入力することができるようにゲームがクリックイベントリスナーがオンになります)

4)レベル1を開始(各レベルの光のシーケンスを表示します0

5)ゲームは、ユーザーの入力を評価します

私は第五ステップでトラブルを抱えています...ゲームはまだ実行されている間、ユーザーの入力を評価するにはどうすればよい

?これは、私が行っていた古い実装である http://codepen.io/neotriz/pen/RRxOJb

+0

手順1で、ランダム配列を新しい配列にプッシュします。ステップ5で、ユーザーの入力をその配列の関連するインデックス –

答えて

1

:私は、whileループの使用について考えたが、それはそれは非常にうまく動作しないようです...

Board.prototype.getUserInput = function(){ 
    board.userInput = []; //reset the user input 
    $(".button").click(function(){ 
     var currentLevel = board.sequence.slice(0,board.index); 
     var color = $(this).attr('id'); 
     board.userInput.push(color) 
     board.evaluateInput(currentLevel); 
}) 

}

HERESに私のcodepenゲーム。 http://codepen.io/antoniskamamis/pen/pJAxq?editors=0010#0

注文を事前に定義しているので、基本的にあなたがしなければならないすべては、色がクリックされた場合には、色をクリックしてご確認それぞれにカウンターを増やすことはあなたの事前に定義された色のn番目の位置

擬似コードで一つですソリューションの場合

var predefinedColors = ['red', 'yellow',...] 
var turn = 0; 
buttons.addEventListener("click", ev => { 
    if(ev.target.classList.contain(predefinedColors[turn]){ 
    //right guess 
    turn++ 
    } else { 
    // wrong guess reset game 
    } 

}) 
+0

と比較してください。これは完全に意味があります:ユーザーの入力の配列を持つ理由はありません。ちょうどそれを簡単に保つ:) – Alejandro

関連する問題