我非常自信自己拥有Simon游戏背后的基本逻辑。但是,我在进入下一轮时遇到了问题。我试图使用if语句和while循环,但是都没有用。我应该如何进行?
简要说明:gameColors是一个数组,其中包含所有随机颜色,这些颜色将在多个回合中以递增的方式显示。变量sequencelength用于增加用户输入功能中使用的计数器,而变量sequenceLengthInv与之相反,从gameColors.length中减去以获得sequenceLength。
随机序列显示颜色的随机序列,直到sequenceLength值。
JS:
if (sequenceLengthInv >= 0) {
// have the game play the random sequence of colors
for (var i = 0; i < gameColors.length - sequenceLengthInv; i++) {
randomSequence();
}
//listens for the user's input
for (var i = 0; i < color.length; i++) {
userInput();
}
sequenceLength++;
sequenceLengthInv--;
}
答案 0 :(得分:0)
尝试使用for
循环并使用throw
/ reject
和catch
(或break
)。另外,Promise
在这里可能会有用。
async function playGame(availableColors, minColors, maxColors) {
await wait(333);
var colors = Array.from({ length: maxColors }, () => randomChoice(availableColors));
try {
for (var i = minColors; i <= maxColors; i++) {
console.log(colors.slice(0, i));
await playRound(colors.slice(0, i));
}
alert('You win!');
} catch (e) {
if(e !== undefined) {
throw e;
}
alert('You lose!');
}
}
我修改后的(现在已注释)的代码可在以下位置找到:https://repl.it/@solly_ucko/InconsequentialRoastedMonitor。