MYSTERIOUS
NUMERALS
LJL版 · WEB EDITION
0%
*** 设置 ***
请设置你想猜的整数范围
🔤 界面字体大小 115%
Small ←———————————————→ Large
确认并开始游戏
📄 查看源码
返回主界面
英雄详细
① 赣州枪手
主动技能1【赏金】:金币收益翻倍
② 画饼大王
主动技能1【画饼】:免费复活一次
③ 牛马怪
被动技能1【我是牛马】 无敌牛马 勇闯天下!
按E键返回主界面
C语言源码 · main.c

程序调试反思 — Mysterious Numerals

Mysterious Numerals 从构思到设计到测试并经过不断增加新功能和不断调试,历经24个版本,时间总跨度整整一个月(2023年4月13日至5月16日)。

最后一次调试(v2.4):从发现 bug 到找出错误根源并修复,耗时长达8小时——5月15日17点开始调试到凌晨0点未果;16日早6:30起床继续1小时依然徒劳;中午再调1小时无功而返;晚上苦战2个多小时,终于定位错误根源并修复。

调试方法论总结:

① 插入打印语句(白盒测试,观察每步数据变化,彻底读懂执行过程)

② 用注释切掉无关代码区域,逐步缩小范围向临界区靠近

③ 分而治之策略将问题局部化

④ 改错后立即回归测试并不断调试

⑤ 调试时若出现新bug,乘胜追击改完后再继续改最初的bug

⑥ 良好的设计风格至关重要——不可贪图一时方便造成后患无穷甚至垃圾代码

⑦ 函数内少用全局变量、少用goto

调试就像一步步找病因线索,像侦探游戏。每找到一条线索就离真相更近一步。bug迟迟不消失让人急躁——花了大量时间还试出新bug时甚至会怀疑开发环境而非程序本身。上课上到一半还在想为什么出错,下课没回想内容就赶回宿舍继续调试……太耗时间时甚至想过放弃这好不容易编出的程序。

—— 李义洵 · 2023年5月

返回主界面
🎮 游戏战绩
👤 档案
📜 战绩
🏆 排行
🏅 荣誉
😎
场次0
金币0
宝石0
最高分0
一击杀0
暂无战绩记录,去玩一局吧!
排行榜为空
已获荣誉 0 项
← 返回主界面
🎭 选择你的头像
确定
★ 游戏已开始!★
亲爱的召唤师,请选择本次探险英雄
① 赣州枪手
主动技能1【赏金】:金币收益翻倍
② 画饼大王
主动技能1【画饼】:免费复活一次
③ 牛马怪
被动技能1【我是牛马】 无敌牛马 勇闯天下!
按E键返回主界面
英雄-
金币0
宝石0
得分0
猜!
按E键返回主界面