私の友人は、Pythonでシンプルな国を推測するゲームプログラムを作成し、JavaScriptでユーザーの入力を邪魔したことがないので、npmにprompt
ライブラリを使用して再作成しようとしました。一連のコンソールテキストベースの入力をJavaScriptで作成しますか?
私はそれになって、「約束の中の約束」の中でグーグルになってしまい、自分が何をしているのか分からないことに気付きました。
JavaScriptの非同期性のため、各国のヒントの数に基づいてx個の国を推測するようにコマンドラインゲームを作成するにはどうすればよいでしょうか。たとえば、最初のヒントで国を推測できない場合は国を選択し、最初のヒントを、それが2番目のヒントを表示するなどとします。
私の次のコードはうんざりしているだけですが、試してみるとわかります。
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 –