写了一个自己都觉得陌生的程序
2011-04-16 23:45
274 查看
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
有必要解释一下SBsnake这个名字的。S,就是small的缩写,B呢,就是big的缩写,那snake就是蛇了。连起来就是大蛇吃小蛇这样。我最初的设想是小蛇只有3节,永远3节,而且会自己移动,而大蛇由玩家控制移动,每吃一条小蛇就长身体,长2节。直至大蛇长到足够长了,玩家获得胜利。每一条小蛇被吃后,新的小蛇会在某个不确定的地方出现。
为什么会感到陌生呢?这才是这篇短文的重点所在。首先说一下如何陌生吧。一,文件一共有7个,代码接近1000行。二,play.h那个文件,很多的if-else,让人看着有点复杂,不好把握。三,发现有bug,却无从下手,不知道哪里最有可能隐藏了这个bug。然后,说说为什么会导致这个结果吧。正如上面提到的,我这个程序的开发方式是从简到繁的。我画了一个简单的流程图之后就开始写代码了。先是写了一个主函数的框架,然后开始写选择菜单、队列、光标定位及打印。接着是写最重要的play.h文件,也就是玩的过程的实现。而play.h的开发也是从简到繁的,先是实现大蛇的长度不变的移动,然后添加不会动的小蛇->让小蛇动起来->使大蛇吃小蛇后会长身体->实现大蛇咬到小蛇蛇身不长身体,吃到小蛇的蛇头才行……程序开始膨胀,开始让我感到陌生了。
总结一下:根本原因就是在开始动手敲代码之前做得工作太少,这些工作包括需求分析、算法设计、数据结构设计、流程图的绘制等。也就是要有一个大的,“完备的”框架,然后才按部就班地敲代码。暂时来说,我还做不到这个。我现在写程序,都是在写的过程中不断完善自己的设计的。所以等到整个程序写完时,已不是最初设想的那个程序了。嗯,要改进!
2011.4.16
相关文章推荐
- 一个C程序 我觉得自己写它好难啊 注释那行是最后分析后加上的 费了我一个小时
- 网址重写 由一个任意或是自己定义的地址转到指定的处理程序 4000 上来
- 微信开发之两天快速开发一个自己的微信小程序
- 写了一个程序用来处理字符串,把一张列表中的题目序号提取出来,然后跟自己昨晚的列表比较,找出来还没有做过的题目列表
- 自己动手写一个ROS程序 标签: ROS入门
- 自己动手写一个可重用的登录测试程序
- MFC 手把手 写一个文件播放小程序(这个是直接copy的 我会动手做一遍 然后发自己原创的)
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 为自己的.net程序配置一个log4net
- 自己写的一个LINUX 下目录文件遍历程序
- 赛码网,股神问题,用C语言自己实现的一个程序,仅供参考
- 自己写的一个企业管理程序,很简陋,随便看看吧
- 黑马程序员--写一个自己和自己聊天的小程序
- 一个最简单的基站定位定出自己位置的小程序
- 日历控件,为了在自己的程序中随时得到一个日期所写的
- ROS的初步学习(五)--自己写一个简单的发布(Publisher)、订阅(Subscriber)程序
- 我的完全自己写的一个程序
- asp.net中 cookies的应用,自己写的一个简单登陆程序。
- 该程序在运行时会创建一个JOB,并且将该自己以JOB后台方式运行,并且可以从前台传递参数到后台JOB
- 一个能够自己主动生成静态库,自己主动安装程序的Makefile