这个怎么是略过这里就直接开干呢?而不是到战斗这里才开干呢?
这个怎么是略过这里就直接开干呢?(语言-javascript)
欢迎来到文字冒险游戏!
开始
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 阿里嘎多学长 2024-05-19 23:04关注
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
您想要解决的问题
您的问题似乎是关于一个HTML页面中嵌入的JavaScript代码,该页面是一个简单的文字冒险游戏。您希望解决的问题是为什么游戏在遇到“熊”后,直接跳过了战斗选择的步骤,而没有到达“战斗”这一环节。
问题出现原因
根据您提供的代码,问题出现在
makeChoice
函数的case 3
分支中。在这个分支中,您设置了两个按钮,它们的onclick
事件都调用了makeChoice(3)
函数,这导致了一个无限循环,因为每次点击都会重新加载相同的情况,而没有提供进一步的选项来进入战斗。问题解决方案
要解决这个问题,您需要重新设计
case 3
分支的逻辑,以便提供不同的选项,包括进入战斗的选项。同时,需要确保fight
函数在正确的位置被调用。提供代码
以下是修改后的代码段,它将允许玩家在遇到熊后选择战斗或逃跑,并在战斗中调用
fight
函数:case 3: document.getElementById("story").innerHTML = "你遇到了一只巨大的熊,它朝你奔来!你应该怎么办?"; document.querySelector(".button-container").innerHTML = ` <button onclick="makeChoice(9)">战斗</button> <button onclick="makeChoice(10)">逃跑</button> `; break; // 新增的战斗和逃跑的case case 9: // 调用fight函数开始战斗 let playerDefeated = false; while (player.health > 0 && dog.health > 0) { if (fight(player, dog)) { document.getElementById("story").innerHTML += `<br>${player.name}战胜了${dog.name}并安全回家。`; break; } if (fight(dog, player)) { playerDefeated = true; document.getElementById("story").innerHTML += `<br>你被狗打败了!`; break; } } if (!playerDefeated) { document.querySelector(".button-container").innerHTML = ` <button onclick="startGame()">重新开始</button> `; } break; case 10: document.getElementById("story").innerHTML = "你成功逃离了熊的追击,并安全返回家园。"; document.querySelector(".button-container").innerHTML = ""; break;
代码运行方式
您可以直接在支持HTML和JavaScript的任何现代浏览器中运行此代码。只需将修改后的代码保存为
.html
文件,然后在浏览器中打开它。代码预期运行结果
当玩家遇到熊并选择战斗时,游戏将进入战斗环节,玩家和狗将轮流攻击,直到一方的生命值降至0或以下。如果玩家胜利,将显示胜利消息并提供重新开始游戏的选项;如果玩家被击败,将显示失败消息。
推荐相关链接
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见