2017-12-08 15 views
0

私は新しい意欲的な開発者であり、バニラjsのみを使用してハングマンのゲームを構築する方法を理解しようとしています。私はキーイベントリスナーをまとめて、コンソールに入力ログを持っています。私は「文字推測」配列にプッシュされた文字を印刷するようにしました。ユーザー入力を配列と比較して、推測としての動作Javascript

document.addEventListener("keypress", letterPressed); 

function letterPressed(event) { 
    var letter = String.fromCharCode(event.keyCode); 
    guessedLetters.push(letter); 
    document.getElementById("lettersGuessed").innerHTML = guessedLetters; 
    console.log(guessedLetters) 
} 

Iはまた、単語の長さが「_」の文字列に変換し、単語この配列からランダムに単語を選ぶforループ

var wordList = ["Ravens", "Cardinals", "Falcons", "Bills", 
"Panthers", "Bears", "Bengals", "Browns", "Cowboys", 
"Broncos", "Lions", "Packers", "Texans", "Colts", 
"Jaguars", "Cheifs", "Chargers", "Rams", 
"Dolphins", "Vikings", "Patriots", "Saints", 
"Giants", "Jets", "Raiders", "Eagles", "Steelers", 
"Forty Niners", "Seahawks", "Buccaneers", "Titans", 
"Redskins"]; 

との選択肢の配列を有し、そしてこれをhtmlドキュメントのdiv idの "spaces"に出力します。

var wordBlanks = []; 
var guessedLetters = []; 
var randomWord = wordList[Math.floor(Math.random() * wordList.length)]; 

for (var i = 0; i < randomWord.length; i++) { 
    wordBlanks[i] = "_"; 
    console.log(wordBlanks,randomWord); 
    document.getElementById("spaces").innerHTML = wordBlanks.join(" "); 
}; 

私はここからどこに行きたいですか?私は選択された単語に対してキーストローク(または文字が推測された配列、最良であるかどうかはわからない)からの入力をチェックし、正しいと推測されたら正しい推測を示す "_"文字列を持っています。

私の質問は私を正しい方向に向けることに関するものです。だから、私は自分自身を適切に教えることができます。アドバイスの言葉?

ありがとうございました!

答えて

0

あなたが最初の小文字/アッパー問題との折り合いをつける必要があるでしょうが、それの後に、このような何かが動作します:

const randomWord = "BEARS"; 
 
const guessedLetters = ["S", "O", "E"]; 
 
const wordBlanks = randomWord.split('') 
 
     .map(letter => guessedLetters.indexOf(letter) >= 0 ? letter : "_") 
 
     .join(' '); 
 

 
console.log(wordBlanks);

0

代わりのguessedLetters配列に入れますプレスの手紙がrandomWordにあるかどうか確認してください。

もしそうなら、文字の位置を見つけ、のスペースをwordBlankアレイに置き換えます。

のような何か:文字が単語に複数の出現箇所を有することができること

function letterPressed(event) { 
    var letter = String.fromCharCode(event.keyCode); 

    if (randomWord.indexOf(letter) >= 0) 
     wordBlank[(randomWord.indexOf(letter)] = letter; 

    console.log(wordBlank); 
} 

注意。

関連する問題