问题就是,我已经过关了,居然没有过关提示!我仔细地想了一下,似乎我的程序里边根本就没有相关的逻辑!
想到此处,我不禁深感汗颜,这可是一个重大的bug!
古人云:亡羊补牢,为时不晚。
古人还云:知错能改,善莫大焉。
于是我停下来思考这个问题,同时还想了一下程序还存在什么问题。
除了没有关卡完成判断的逻辑外,还有就是现在的关卡有一个,如果要切换关卡就要修改地图数组里面的内容。
目前切换关卡的模式是手动修改数组,要是游戏需要给其他人玩儿,这就死翘翘了,因为我的小伙伴们基本上都不会编程啊。这样一来,就会严重影响到我在他们面前装十三的体验,所以这个问题必须得解决,刻不容缓。
「可以将地图数据放在一个文件里边,切换关卡的时候从文件中读取对应的数据就可以了。」
老爹给出了他的方案,但是我不会呀。
在我的追问之下,老爹说要等到学了文件指针才能完成这个功能。这就没有办法了,毕竟巧妇也难为无米之炊。既然这个问题暂时不能解决,那就先把关卡完成的判断实现了再说。
到时候给那些小伙伴玩儿了之后,要是他们还要玩儿后面的关卡,就让他们转账给我!我才给他们解锁新地图。但是他们那里知道,要解锁新的地图根本就不需要修改逻辑代码,只要复制粘贴替换地图数据就好了。
想到这里,我似乎已经看到了大家争着给我转账,让我解锁新地图的情景了。
「这种操作模式有点熟悉的样子啊!先不管这么多了,还是考虑如何实现过关功能吧。
过关的关键在于所有的羊都被推进黑锅当中,所以需要一个变量来统计总共有多少只羊,还需要另一个变量来统计被推进黑锅中的羊的个数。
当他们两个相等的时候,那就是过关了!」
我自己在脑中思考这其中的门道,在确认了即便思路没有问题后,接下来就是如何实现这个功能。
「羊的个数,只需要在地图加载的for循环中加载羊的那个if中添加一句代码就好了。
至于已经推进锅里的羊的个数,这个要在下一个位置是羊,下下个位置是锅的地方统计。
那什么时候进行判断呢?嗯~,每一次移动都需要判断!」
我很快理清楚了实现方式,于是开始写代码。但是因为代码好像有些太多了,而且有些代码相似度很高,容易产生错觉。寻找起来着实有些麻烦,不过好在我耐下性子,一行一行地仔细核对,总算是完成了。
接着就是紧张的测试,放了一张简单的地图进去,看到调试窗口里边打印出来的「恭喜过关!」的时候,我一下从椅子上跳了起来!成了!
感觉有些不真实,我居然在没有老爹的帮助下,靠我自己单独完成了一个功能!于是我强行按捺住激动的心情,又换了两张地图测试了一遍,都没有问题!
我激动到无以复加,那种感觉真的没有办法用言语来形容,让我居然有点想哭,久久不能平静下来。
这一刻,我觉得之前为之付出的辛劳都是值得的。
「老爹,老爹,我成功了,这个游戏完成了!」
我跑到正在沙发上看书的老爹面前嘚瑟道,脸上就差没有刻着「快表扬我,快表扬我」的字眼了。
「真的么?」
老爹放下他手中的那本「机器视觉理论」,笑着问道。
「嗯呐,我……」
我叽叽喳喳地将整个实现过程和我当时的心里活动都完完整整地讲述给了老爹听,老爹也全程微笑着听我说完。
「嗯,还是不错的,果然是个学习编程的料。」
老爹先是拍了拍手,接着又轻轻地摸了摸我的头。
如果写好程序不在别人面前演示,那和锦衣夜行有什么区别?在接受完老爹的赞扬后,我迫不及待地将他拉进了我的房间,不由分说地要他亲自玩儿这个游戏。
说实话,在老爹玩儿的过程中我还是有点紧张的,生怕半路又杀出个bug出来,这个赤果果地打脸么?还好接连玩儿了几个地图后,都没有出什么问题,我这才松了一口气。
但有的时候,往往你越怕什么,它就越会发生,这大概就是所谓的墨菲定律。
就在我以为大局已定的时候,墨菲她显灵了!老爹明明还剩下一只羊没有推进锅里,但是调试窗口里面居然打印出了「恭喜过关!」的字样!
「这是怎么回事?不应该出现这种情况啊!」
我感到有些怪异,一点都不相信我的程序有问题。因为如果程序的逻辑真的有问题的话,之前尝试了那么多次,早就应该出现这个问题了啊。
在脑中再次将实现过关判定这部分的逻辑回顾了一边,我越发肯定自己的代码是没有问题的。
「会不会是编译器出问题了?还是电脑开机太久了,闹幺蛾子?」
于是我开始怀疑天,怀疑地,甚至连空气都开始怀疑,始终不愿意相信是自己的程序出了bug。如果不是因为老爹在这儿坐着的,我多半就要执行他传授给我的程序员界的「三重真言」:重编、重启、重装。
重编是重新编译程序,重启是重新启动编译器和电脑,重装嘛,重新装编译软件和电脑系统。
接下来发生的事情,似乎证明我的怀疑是对的。因为老爹又玩儿了一次,这次程序又正常了!
老爹沉默不语,将鼻梁上左边镜片缺了一块的近视眼镜取了下来,从我电脑桌上拿了一片湿纸巾拭擦眼睛。
看他的神情,似乎是在思考什么。
约莫一分钟过后,老爹重新戴上眼睛,又玩儿一把游戏。
只见老爹将一只羊推进锅里后,又将它推出来,然后又推进去,如此循环往复4次后,调试窗口居然打印出了「恭喜过关!」的字样!
我脸上的表情骤然凝固,死死地盯着这四个字。不久之前因为break的事情刚被打脸,本以为这次能够扳回一城,没想到又被打脸了。
「我知道问题出在哪儿了!」
老爹笑着说道。
即便我心情陷入了低谷,但还是很想知道为什么会这样,于是强打起精神听老爹的话。