简易JavaScript数字游戏开发问题:需验证首个答案正确才可继续
解决方案
要实现必须答对首个答案(93)才能继续后续答题的功能,我们需要跟踪当前需要验证的目标答案,严格控制答题顺序。具体实现如下:
- 新增
currentIndex变量记录当前待验证答案在数组中的位置,初始值设为0(对应首个答案93)。 - 点击校验按钮时,先过滤非数字输入,再将用户输入转为数字与当前目标答案对比。
- 答对当前答案后,推进到下一题;答错则提示错误并清空输入,直到用户答对当前题才能继续。
修改后的完整代码:
let answerInput = document.getElementById("inpu"); let checkButton = document.getElementById("send"); let answers = []; // 记录当前待验证的答案索引,初始指向第一个答案93 let currentIndex = 0; for(let i = 100; i > 2;) { i -= 7; answers.push(i); // 生成序列:[93, 86, 79, ...] } checkButton.onclick = function(){ const inputValue = answerInput.value.trim(); // 处理非数字/空输入 if(isNaN(inputValue) || inputValue === ""){ answerInput.value = ""; answerInput.placeholder = "请输入有效数字"; return; } const userAnswer = Number(inputValue); const targetAnswer = answers[currentIndex]; // 验证当前答案 if(userAnswer === targetAnswer){ alert(`回答正确!继续下一题`); answerInput.value = ""; // 推进到下一题,若还有未完成的题目 if(currentIndex < answers.length - 1){ currentIndex++; } else { alert(`所有题目已完成!`); checkButton.disabled = true; // 完成后禁用按钮 } } else { alert(`回答错误,请重新输入`); answerInput.value = ""; } }
关键逻辑说明
currentIndex变量:强制答题顺序,只有答对当前索引对应的答案,才能解锁下一题,确保用户必须先通过93的验证才能继续后续内容。- 输入校验:补充空值判断,避免用户输入空格或空内容导致的逻辑异常。
- 完成状态处理:所有题目答对后禁用按钮并给出提示,优化交互闭环。
内容的提问来源于stack exchange,提问作者AyanoQ
相关产品推荐
相关产品推荐

