贪吃蛇游戏编程学习

搬运的以前博客的文章.

命令行版的贪吃蛇

命令行版的贪吃蛇,花了一个晚上的时间,连抄带看,把代码慢慢敲出来,终于敲出来一个框架了 = =#,这个界面终于做好的.

PS:这个界面可不是printf出来的.= =# 因为这个界面在添加了游戏核心之后是有一条snake在界面上动的.

妈蛋的,光这个界面就有120行代码~ 完整版的可以玩的贪吃蛇程序源代码我看了一下,有470行.

以前一直是写的算法程序,都是很小很小的一个程序,没做过这种比较完成的需要规划设计的程序项目.

真的还是需要多做做这种比较完整的编程项目,这样就可以有很不错的提高,因为之前我已经找不到提高的方法了.

当然方法也是有的.那就是去OJ刷题.但是.我不想再在那方面搞下去了.

我想提高自己的综合能力,例如编写一个完成的有使用功能的程序.

本来这个程序是在linux编写的.用linux下的ncurses库做出来比这个还好看.

效果展示

这是linux下的效果,不得不说,linux在命令行这方面比windows强大的不是一点两点.

至于源代码我就不说了.太长了.需要的同学可以去实验楼学(百度实验楼),在这个平台学习IT方面的知识还是很不错!!简直赞.

我提一下我把程序从linux移植到windows下的过程吧.其实这个还是有点意义的,对程序的理解又上升了一个层次.

一开始我把源代码copy到windows下来.我尝试着用DevC++编译了一下(我知道肯定不行),发现果然不行.

windows下的问题

编译器提示 找不到ncurses这个库.然后我就用命令行gcc(我的电脑安装了MINGW的)编译 gcc -o snake snake.c -lncurses

错误提示

还是没有.我就知道这个库连MINGW也没有.然后我又进了MINGW的包管理程序里看了看(没报太大的希望),果然也没有.

没办法了,百度吧,然后马上百度到了一篇博客

看了看,原来windows下的库是pdcurses.然后到SourceForge.net去下载了这个库.

然后添加到MINGW的include文件夹和lib库.然后把#include <ncurses.h>改成#include <curses.h>没办法入乡随俗吧.

还好源代码不用改.ncurses里的函数pdcurses里都有.真是件值得庆幸的事.

然后改编译命令gcc -o snake snake.c -lpdcurses然后就编译成功了.我开心的打开了它.结果是这样子的

还是有问题

其实这个问题.在刚刚那个博客里有.可惜我看到怎么弄之后直接去下载pdcurses然后编译去了根本没看完.

好吧.我发现,在下载的文件里面正好有一个pdcurses.dll.

然后我把这个文件复制到我编译出来的exe文件下,哈哈,就可以运行了.

这就是一个库引发的一系列问题.

最后我还是发一下源代码里的宏定义吧.这就是这个程序的灵魂(至少我是这样认为)

一部分宏定义

这是对整个游戏界面的初始化定义 ,也是对框架构建的定义.我觉得这里才是最费脑力的地方.