我的朋友用python創建了一個簡單的國家猜謎遊戲程序,並且從未與JavaScript中的用戶輸入混淆,我試圖在npm上使用prompt
庫重新創建它。在JavaScript中創建一系列基於控制檯文本的輸入?
當我陷入其中時,最終發現了「諾言中的承諾」,並意識到我可能不知道自己在做什麼,我知道我需要去其他地方尋求幫助。
由於JavaScript的異步特性,我將如何創建一個命令行遊戲,它會根據每個國家/地區的y個提示猜測x個國家/地區的數量。例如,它選擇一個國家,並說第一個提示,如果該人不能在第一個提示中猜出國家,則顯示第二個提示,依此類推。
我的下面的代碼糟透了,幾乎沒什麼用,但我會給它只是爲了表明我嘗試過。
let createCountry = (name, hints) => { return { name, hints } }
let countries = [
createCountry("america", ["my home!"]),
createCountry("not america", ["not my home!"])
]
for (let i = 0; i < countries.length; i++) {
new Promise(function(resolve, reject) {
let count = 0;
let country = countries[i]
console.log(country.name)
for (let h = 0, hint = country.hints[h]; h < country.hints.length; h++) {
let result = new Promise(function(resolve, reject) {
prompt.get(["country"], (err, result) => {
console.log(`Hint ${h + 1}/${country.hints.length}: ${hint}`)
if (result === country.name) {
console.log("You guessed correctly")
resolve(true)
} else {
console.log("You did not guess correctly")
reject(false)
}
})
})
}
console.log("\n")
})
}
JavaScript總是*同步*,我真的沒有看到這裏需要異步執行,因爲它應該是非常直接的實現沒有任何異步行爲。看看https://teamtreehouse.com/library/javascript-basics/making-decisions-with-conditional-statements/build-a-random-number-guessing-game –