JavaScript虚拟宠物游戏代码问题求助:行走逻辑与控制台打印bug修复
问题修复方案
问题B(宠物名显示NaN)修复
原因:你在控制台输出语句里的Pet变量前多写了一个一元加号+,该运算符会尝试将字符串格式的宠物名强制转换为数值,转换失败就会返回NaN,直接删掉这个多余的加号即可。
问题A(walk指令能量判断逻辑)修复
在walk的条件分支中先增加能量判断:如果当前Energy值为0,直接弹出错误提示,不执行后续的happiness、energy修改逻辑即可。
额外优化
你现有代码中在Action变量还未定义时就执行了document.write(Action),这行代码会输出undefined,属于无效代码可以直接删除。
修正后完整代码
const Pet = prompt ("Name your pet"); let Energy = 0; let Happiness = 0; document.write(Energy); document.write(Happiness); for (i=0; i<6; i++){ var Action = prompt ("feed, pet, or walk?"); if (Action === "feed") { Energy = Energy + 2; } else if (Action === "pet") { Happiness = Happiness + 1; } else if (Action === "walk") { // 新增能量不足判断逻辑 if (Energy === 0) { alert("not enough energy for a walk"); // 跳过后续变量修改,直接进入下一轮循环 continue; } Happiness = Happiness + 2; Energy = Energy - 1; } }; console.log(Pet) console.log(Happiness) console.log(Energy) // 移除Pet前多余的加号 console.log(Pet + " has " + Happiness + " happiness and " + Energy + " energy");
内容的提问来源于stack exchange,提问作者user15881537
相关产品推荐
相关产品推荐

