2017-12-08 3 views
0

나는 새로운 주목받는 개발자이며 바닐라 js 만 사용하여 행맨 게임을 만드는 방법을 알아 내려고합니다. 나는 핵심 이벤트 listner를 모으고 콘솔에 입력을 기록하도록했다. 또한 "편지 추측 된"배열로 밀어 넣은 문자를 인쇄 할 수있게했습니다.배열에 대한 사용자 입력을 확인하여 추측으로 사용 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는 즉

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"]; 

그리고 선택의 배열을 가지고,이 배열에서 랜덤 워드 따기 루프를 들어, 변환에 "_"워드 길이의 문자열 및 div id가 "spaces"인 html 문서에 인쇄합니다.

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 배열에 넣는 Press 편지가 randomWord에서 발견 될 수 있는지 확인하십시오.

문자가있는 경우 해당 문자의 위치를 ​​찾아 wordBlank 배열의 해당 _ 공백으로 바꿉니다. 같은

뭔가 : 편지가 단어에 여러 발행 수를 가질 수

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

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

    console.log(wordBlank); 
} 

참고.

관련 문제