問題:猜字遊戲,讓玩家猜想這個單詞中的字母,每次猜對一個字母,就會紀錄下,直到悉數才對,退出遊戲,中心玩家能夠隨時退出遊戲。
剖析:
- 隨機天生一個單詞
- 紀錄玩家猜想的字字母
- 向玩家展現遊戲進度
- 玩家能夠隨時退出遊戲
- 吸收玩家猜想的字母
推斷玩家猜想的字母
- 推斷玩家猜想的字母是不是有大寫
- 推斷玩家猜想的字母是不是準確
- 推斷這個字母玩家有沒猜過
- 紀錄玩家猜想的字母
- 向玩家展現猜想進度
- 悉數猜對,完畢遊戲
var words = ["javascript","python","monkey","amazing","apple"];
var word = words[Math.floor(Math.random()*words.length)];
var answerArray = [];
for(var i = 0; i < word.length; i++){
answerArray[i] = "_";
}
var remainingLetter = word.length;
while(remainingLetter > 0) {
alert(answerArray.join(" "));
var guess = prompt("請輸入一個猜想的字母");
if (guess === null) {
var quit = confirm("是不是要退出");
break;
} else {
var lowerCase = guess.toLowerCase();
if (lowerCase.length !== 1) {
alert("只能輸入一個字母");
} else {
for (var j = 0; j < word.length; j++) {
if (word[j] === lowerCase) {
if(answerArray[j] === lowerCase) {
alert("此字母已猜過");
}else{
answerArray[j] = lowerCase;
remainingLetter--
}
}
}
}
}
}
if(quit){
alert("感謝介入");
}else{
alert(answerArray.join(""));
alert("good! " + word);
}
有一個bug
,沒有限定玩家猜想的次數。