突发奇想:
最近又得开始忙着复习考试了,整天都是看PPT,啃课本,做习题,无聊加烦恼。手痒,想敲代码,又怕上瘾耽误了考试,所以就想着拿个小程序来练练手,以解烦闷。正在做视频监控,对SDL有点了解,所以就它了!而且它是跨平台的,方便在linux下玩弄。做个什么好呢?就来个QQ表情版的贪吃蛇好了,我觉得做出来会很搞笑的。说干就干,这篇blog就是在这种冲动下写的,嘻嘻嘻~~为了写好这篇blog,我决定使用我们学校整天吹嘘的CDIO理念来组织文章,所以这对我又是一个有意思的挑战。好了,废话不多说,哥开始了……
(一)构思(CDIO中的C)
QQ表情版的贪吃蛇使用QQ经典表情来充当蛇身和食物的,其中头像当蛇身,其他的当食物。这些表情是按照一定顺序来出来的,也许可以使用循环数组的方法实现之~~至于游戏规则就没什么好讲的了,就是前后左右键盘响应控制蛇身方向,食物随机位置出现,蛇身吃完食物后蛇身便长长一节,分数便增加一分。
(二)设计(CDIO中的D)
关键部分就是蛇的移动,我把整条蛇设计成一条单向循环链表,并且是逆向的,即从蛇尾蛇一直指向蛇头,再从蛇头指回蛇尾,当蛇移动时,只要把蛇头指针向前移动一节(即蛇尾,移动之前已经将其改为新蛇头),同时蛇尾指针也向向前移动一节(即次蛇尾),而中间部分的蛇节点的结构体不需要改变,这样用户就会感觉是蛇在移动。
次关键部分就是蛇的增长,当蛇头吃到食物之后,就根据旧蛇的蛇尾记录产生新的节点,然后插到蛇尾即可
是不是很简单啊!!那接下来开始实现吧~~
(三)实现(CDIO中的I)
具体的源代码下载
下载在Linux公社的1号FTP服务器里,下载地址:
密码:www.muu.cc
在 2012年LinuxIDC.com\7月\《贪吃蛇游戏》项目实作【附代码】
下载方法见 http://www.linuxidc.net/thread-1187-1-1.html
(四)操作(CDIO中的O)
至于操作嘛,我还真不知一个软件有什么好操作的,也许是运维吧,在前面我也已经展现出了运行的照片了,也就没啥好说了。不过有点体会倒是很深,那就是一定要一定要海读有质量的源代码~~