2017-02-26 19 views
0

こんにちは、押された文字がa-z配列にない場合、onkeyupごとにアラート(「オプションではない」)を設定する方法を解明しようとしています。アレイに何かがない場合のアラートの設定方法

正しいonkeyupが押されると、アレイを通過してそれを削除します。
しかし、それは関係なくポップアップするので、私は関数の最後に置くことはできません...
そして、それは複数回実行されるため、ループに入れることはできません。

//function that compares the letter inputted to the splitWord array 
function checkLetter (letter) { 
    //setting to false first to cover any input 
    var letterGiven = false; 
    //run a loop and compare the letter and splitword 
    for (i = 0; i < numberEmptySpaces; i++) { 
     if (splitWord[i] === letter) { 
      letterGiven = true; 
      //if it is true then letter will equal emptydisplay and replace the "_"   
      emptyDisplay[i] = letter; 
      //this updates the emptyDisplay with the letter that was given.  
      $('#randomId').html(emptyDisplay.join(" "));  
     } 
    } 
    //if it is not true then you lose one live and the letter is unputted to userGuess array  
    if (!letterGiven) { 
     livesRemaining--; 
     userGuesses.push(letter); 
     $('#wrongWordId').html("[ " + userGuesses.join(", ") + " ]"); 
     $('#livesId').html(livesRemaining); 
    } 
    console.log(userGuesses); 
    console.log(livesRemaining);  
    //checking to see if the empty display is undated when onkeyup is actived 
    console.log(emptyDisplay);  
} 

(これはちょうどそれをスパイスしようとしている、それが動作する、絞首刑執行人のゲームのためである)

//function that will only allow a-z and space bar to be pressed 
function availableLetters(letter) { 
    var letterGiven = false; 
    var alphabet = 'abc defghijklmnopqrstuvwxyz'.split(''); 
    //check to see if it splits when called, it does 
    for (i = 0; i < alphabet.length; i++) { 
     if (alphabet[i] === letter) { 
      letterGiven = true; 
      //removes the current letter from the alphabet array  
      alphabet.splice(i, 1); 
     } 
    } 
} 

//--------------------------------------------------------------- 

//starts the initial game 
startUp(); 

//listens for an event, which is onkeyup 
$(document).on("keyup", function(event) { 
    //creates a variable and converts into a string 
    //fromcharcode is a converts assigned number to a letter and event.which is the number 
    //toLowerCase just lower cases any string inputed 
    var keyLetter = String.fromCharCode(event.which).toLowerCase(); 
    availableLetters(keyLetter); 
    checkLetter(keyLetter); 
    updateInfo(); 
+1

私は少し混乱しています。 'a'を押すと、それを検証してアルファベットから削除します。 '1'を押すと' alert(not found ")'を表示します。しかし、もし私が何が起こるべきであるの2回を押して? – Rajesh

+1

達成したいことをよりよく説明する必要があります。これは明らかではない。たぶんあなたは間違った側で問題を抱えているかもしれません。 –

+0

thats私が欲しい主なアイデアは、今のところ、アラートはすべてカバーされ、私がそれらを押し込むための別々の配列とアラートを作成するまで、見つからなかったものを表示します。 –

答えて

1

あなたは、そのハンドルに応じindexOfを使用する必要があります。また、警告を再度表示したくない場合は、userGuessesアレイを確認してください。

//function that compares the letter inputted to the splitWord array 
function checkLetter (letter) { 
    //setting to false first to cover any input 
    var letterGiven = false; 
    //run a loop and compare the letter and splitword 
    if(splitWord.indexOf(letter)>=0){ 

      letterGiven = true; 
      //if it is true then letter will equal emptydisplay and replace the "_"   
      emptyDisplay[i] = letter; 
      //this updates the emptyDisplay with the letter that was given.  
      $('#randomId').html(emptyDisplay.join(" "));  
     } 

    //if it is not true then you lose one live and the letter is unputted to userGuess array  
    if (!letterGiven && userGuesses.indexOf(letter)<0) { 
     livesRemaining--; 
     userGuesses.push(letter); 
     $('#wrongWordId').html("[ " + userGuesses.join(", ") + " ]"); 
     $('#livesId').html(livesRemaining); 
    } 
    console.log(userGuesses); 
    console.log(livesRemaining);  
    //checking to see if the empty display is undated when onkeyup is actived 
    console.log(emptyDisplay);  
} 
関連する問題