满足条件后如何修改对象属性?Yahtzee游戏按钮解锁问题
Yahtzee克隆版按钮解锁逻辑修复方案
你的代码崩溃是因为无限循环:当rollcount == 3时,进入while循环的条件是ptsss * 3 < 3(即ptsss < 1),但循环内部完全没有修改ptsss的值,导致这个条件永远成立,浏览器会一直执行循环直到卡死。
正确实现思路
不需要用while循环,分两步处理逻辑即可:
- 第三次掷骰子完成后,直接禁用掷骰子按钮
- 用户选择分数后,重置掷骰子次数并解锁按钮
修正后的代码示例
1. 处理第三次掷骰子后的按钮禁用
if (rollcount === 3) { // 掷满3次,直接禁用按钮 document.getElementById("rollbutton").disabled = true; }
2. 用户选择分数后的按钮解锁逻辑
// 假设这是用户点击分数选项的处理函数 function onScoreSelected() { // 已选分数数量加1 ptsss++; // 重置掷骰子次数,准备下一轮 rollcount = 0; // 解锁掷骰子按钮 document.getElementById("rollbutton").disabled = false; }
补充说明
如果需要严格对应你原本设想的ptsss * 3 == rollcount判断逻辑(比如确认已完成的轮次与掷骰子次数匹配),可以调整解锁条件:
function onScoreSelected() { ptsss++; // 验证轮次与掷骰子次数的匹配关系 if (ptsss * 3 === rollcount) { rollcount = 0; document.getElementById("rollbutton").disabled = false; } }
内容的提问来源于stack exchange,提问作者Ethan B
相关产品推荐
相关产品推荐

