写了一个自己都觉得陌生的程序

来源:互联网 发布:mac子网掩码怎么查 编辑:程序博客网 时间:2024/04/29 00:18

     SBsnake这个小游戏,我大概是用了10多个小时来做的,平均每天2个小时,就做了一个星期。我这次是从简到繁的方式去写的。也就是先写好基本框架,然后慢慢地增加功能模块,直至实现要求。到写完的时候,总的代码接近1000行了。结果,我看着自己的程序,感到陌生。真失败。

     有必要解释一下SBsnake这个名字的。S,就是small的缩写,B呢,就是big的缩写,那snake就是蛇了。连起来就是大蛇吃小蛇这样。我最初的设想是小蛇只有3节,永远3节,而且会自己移动,而大蛇由玩家控制移动,每吃一条小蛇就长身体,长2节。直至大蛇长到足够长了,玩家获得胜利。每一条小蛇被吃后,新的小蛇会在某个不确定的地方出现。

     为什么会感到陌生呢?这才是这篇短文的重点所在。首先说一下如何陌生吧。一,文件一共有7个,代码接近1000行。二,play.h那个文件,很多的if-else,让人看着有点复杂,不好把握。三,发现有bug,却无从下手,不知道哪里最有可能隐藏了这个bug。然后,说说为什么会导致这个结果吧。正如上面提到的,我这个程序的开发方式是从简到繁的。我画了一个简单的流程图之后就开始写代码了。先是写了一个主函数的框架,然后开始写选择菜单、队列、光标定位及打印。接着是写最重要的play.h文件,也就是玩的过程的实现。而play.h的开发也是从简到繁的,先是实现大蛇的长度不变的移动,然后添加不会动的小蛇->让小蛇动起来->使大蛇吃小蛇后会长身体->实现大蛇咬到小蛇蛇身不长身体,吃到小蛇的蛇头才行……程序开始膨胀,开始让我感到陌生了。

     总结一下:根本原因就是在开始动手敲代码之前做得工作太少,这些工作包括需求分析、算法设计、数据结构设计、流程图的绘制等。也就是要有一个大的,“完备的”框架,然后才按部就班地敲代码。暂时来说,我还做不到这个。我现在写程序,都是在写的过程中不断完善自己的设计的。所以等到整个程序写完时,已不是最初设想的那个程序了。嗯,要改进!

2011.4.16