当前位置: 首页 > news >正文

flag使用错误出现bug

bug代码

//第一关、第二关第一次进入的时候的标记变量
int flag1 = 1, flag2 = 1;int main() {while (!gameOver) {if (level == 1 && flag1 == 1) {currentpr = rk[0][0];currentpc = rk[0][1];newpr = currentpr;newpc = currentpc;flag1 = 0;}/*出现bug的代码*///else if (level == 2 && flag2 == 2) {/**/else if(level == 2 && flag2 == 1){currentpr = rk[1][0];currentpc = rk[1][1];newpr = currentpr;newpc = currentpc;flag2 = 0;}system("cls");//清屏showMap();showMenu();if (isSuccess()) {if (level == 1) {cout << "逃出成功!" << endl;cout << "下一关" << endl;cout << "是否继续游戏?(Y/N)" << endl;cin >> direction;if (direction == 'Y') {level++;//下一关continue;}else {cout << "游戏结束,欢迎下次游玩。" << endl;break;}}else if (level == 2) {cout << "逃出成功!" << endl;break;}}input();move();}return 0;
}

Bug 原因分析

在第二关初始化逻辑中,flag2的判断条件错误,导致第二关的初始坐标未被正确设置,进而无法移动。

具体来看这段代码:

else if (level == 2 && flag2 == 2) {  // 条件错误currentpr = rk[1][0];  // 第二关入口坐标(0,2)currentpc = rk[1][1];newpr = currentpr;newpc = currentpc;flag2 = 0;
}
  • 全局变量flag2初始值为1int flag2 = 1;),但判断条件写成了flag2 == 2,导致该分支永远不会执行。
  • 因此进入第二关时,currentprcurrentpc仍保留第一关结束时的坐标(而非第二关入口(0,2)),而该坐标在map2中可能是墙壁(非空格),导致move()函数中始终触发 "回退" 逻辑,表现为无法移动。

Bug 解决方案

修正第二关初始化的flag2判断条件,将flag2 == 2改为flag2 == 1,确保第一次进入第二关时正确初始化坐标。

http://www.dtcms.com/a/393573.html

相关文章:

  • 【Kafka面试精讲 Day 20】集群监控与性能评估
  • SQL 注入攻防:绕过注释符过滤的N种方法
  • 微软常用运行库
  • 在Kubernetes(k8s)环境中无法删除持久卷(PV)和持久卷声明(PVC)的解决方案
  • 【连载7】 C# MVC 跨框架异常处理对比:.NET Framework 与 .NET Core 实现差异
  • 芯脉:面向高速接口的SoC架构与完整性设计<3>
  • ArrayList与LinkedList深度对比
  • AI IDE 综合评估:代码能力与上下文连续性深度分析
  • OceanBase备租户创建(一):通过CREATE STANDBY TENANT
  • C++ 多态:从概念到实践,吃透面向对象核心特性
  • ​​如何用 Webpack 或 Vite 给文件名(如 JS、CSS、图片等静态资源)加 Hash?这样做有什么好处?​​
  • QT-数据库编程
  • FastAPI + APScheduler + Uvicorn 多进程下避免重复加载任务的解决方案
  • 数据库造神计划第十八天---事务(1)
  • Docker在Linux中离线部署
  • 面阵vs线阵工业相机的触发方式有什么不同?
  • 【Hadoop】HBase:构建于HDFS之上的分布式列式NoSQL数据库
  • 拉取GitHub源码方式
  • 【国二】【C语言】改错题中考察switch的用法、do while执行条件的用法
  • 23种设计模式之【命令模式模式】-核心原理与 Java 实践
  • APP持续盈利:简单可行实行方案
  • qt 操作pdf文档小工具
  • Web3 开发者周刊 68 | EF 将成立一个新的 AI 团队
  • [OpenGL]相机系统
  • 软件体系结构——负载均衡
  • Unity 游戏引擎中 HDRP(高清渲染管线) 的材质着色器选择列表
  • 系统架构设计师(现代计算机系统架构和软件开发)错题集
  • 七、Linux创建自己的proc文件
  • 理解CSS中的100%和100vh
  • [特殊字符] Chrome浏览器证书导入指南