写了一个自己都觉得陌生的程序
来源:互联网 发布: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
- 写了一个自己都觉得陌生的程序
- Codeforces Round #277.5 (Div. 2) A SwapSort 我自己写的奇葩代码竟然AC了。。。自己都觉得不可思议
- 一个C程序 我觉得自己写它好难啊 注释那行是最后分析后加上的 费了我一个小时
- 自己写了一个简单的画图程序
- 我自己也写了一个八皇后的程序
- 自己写了一个河内塔程序
- 自己写了一个打包程序
- 为什么我写了半年程序,还是觉得自己像是一无所知呢
- 所有觉得自己岁数大了,这辈子就这样的人都应该来看看
- 我都觉得自己的名字很土,土得就像一个草包
- 自己写了一个链表功能还不完善但是简单的增删改查功能都已经实现了
- 自己写的一个ping程序
- 自己写的一个分页程序
- 自己写的一个分页程序
- 发一个自己写的服务程序
- 自己写的一个ping程序
- 自己写的一个练习程序
- 自己写的一个Android小程序
- Android startService 启动自动解锁点亮屏幕
- Test recorder的源码分析(3)
- 如何在C#中使用内嵌资源文件
- HTML5标记省略 语法规则
- UI设计系列之一------最基本的原则:使用方便
- 写了一个自己都觉得陌生的程序
- AMQP消息服务器 RabbitMQ
- IntentService实现原理及内部代码
- CISCO Site-to-Site IPSEC VPN
- 写下关于popwindow
- zend framework里面的"->"连续使用的问题
- DedeCMS5.7整合PHPWind8.5优秀教程
- autoconf 手册
- Test recorder的源码分析(4)