贪吃蛇-C语言全分析

原创
2020/04/19 22:40
阅读数 264

写于2014-1-31 15:31 QQ空间。

写在前面:
        作为初学者,这学期学完了C语言,有必要写一款实用的软件,给自己一个交代,不是书上的hello world之类的简单程序了。
    写游戏是一个不错的选择,可以较为综合利用学到的知识,实践是把知识联系起来。不喜欢玩游戏,可是写游戏还是很想试一试。
   
    贪吃蛇作为经典游戏,简单好做,是初学者值得尝试的一种游戏。本游戏调用了些库函数等,不懂的同学可以百度百科哦
    
    本文分为游戏分析,程序功能分析,代码实现,总结四个部分

第一部分:游戏分析
        贪吃蛇:玩家控制一条一定时间移动一格的蛇 ,去吃到食物,使蛇增长,得到分数,尽可能的获得更多的分数。
第二部分:程序功能分析
        1...蛇能移动,并且玩家可操作移动方向
        2...食物随机出现在游戏区域某一位置
        3....打印出字符方块(2X1)为蛇的一节,


         解决方案:调用windows api 控制光标在程序出现的位置(头文件windows,h)
                           随机函数用rand等函数实现(头文件time.h)
                           用数组储存蛇每一节的坐标,每刷新一次擦除原来的蛇,然后打印出新的蛇

 

第三部分:代码实现
自定义函数一览



头文件,变量声明部分

蛇结构体声明部分


main函数部分    


调用函数  _xy(int,int)   可以实现将光标移到指定位置


game_welcome函数      确定游戏初始界面                                 PS(这条蛇来自搜狗字画符)

game_welcome函数中的循环控制玩家选择 开始或者退出

效果图


游戏数据初始化       game_format 函数


进入主控函数 game_control()

没有输入的情况中
变量ii为标记变量,由于每次主循环的时间为10毫秒(  Sleep(10);函数实现  ),所以每次循环ii自加10 ,
ii大于speed速度变量后,就打印出自动前进的蛇,ii初始化为10
如果主循环不设置间隔时间,那么CPU 会一直处于占用状态,使用率会很高,而且游戏速度也不好
控制,会局限于每台电脑的配置。



pri_snake函数构成
先消除原来的蛇,在坐标变换,在输出新的蛇。


坐标变换,由于情况比较多,这里只举例一种


pri_food 函数



游戏截图




总结:
   写程序可以增加所学的知识的连贯程度,使用熟悉度

写在后面:
        能力有限,本程序还有很多不足,代码也不好看,
        第一次写技术类日志,很多地方模模糊糊,望谅解。

其他分享阅读:

控制台的坦克大战 https://www.oschina.net/code/snippet_1391394_33835

C++版本简易Flappy bird https://www.oschina.net/code/snippet_1391394_34466

展开阅读全文
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部