版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
贪吃蛇小游戏
刚学完C语言写的第一个小游戏,代码主要参考:
我在模仿代码的过程中发现了原作者程序中的一些bug,以下f附有我加以改进后的代码。
1.游戏界面
这个小游戏游戏界面的核心在于光标的控制。只要我们能让光标到达我们想要的地方,我们就能完成游戏界面的绘制,蛋的生成。简直就像天上地下,无所不能。
实现:gotoxy()函数
2.游戏体验感
如何将用户的输入读入,而不显示在屏幕上?
实现:getch()函数(包含在中)
如何防止用户的非法输入?玩游戏的过程中难免会摁到其他的键,如何让它不影响到我们的游戏?如果蛇在往前行走,我们控制方向向后,该怎么处理?
实现:保存蛇的前进状态。
3.游戏关键
蛇该如何打印?如何实现蛇的行走?
如何完成吃蛋的过程?
游戏结束的条件是什么?
这几个问题都是实现游戏的关键步骤,但是实际操作起来并没有想象中的那么难,希望读者结合下文代码自行思考。
代码还可以大幅度优化,读者可以自行思考。
如果发现代码有bug,欢迎下方留言。
如果觉得楼主的代码对你有帮助的话,可以点个关注,点个赞,谢谢!
#include#include#include#include#include#define frame_height 30//地图尺寸#define frame_width 50#define UP 'w'//移动#define DOWN 's'#define LEFT 'a'#define RIGHT 'd'int i,j,k,sp,score;char ch=UP,state=UP,choo,n;//初始化方向int grow=0;struct Food//食物{int x;//横坐标int y;//纵坐标} food;struct Snake//蛇{/*用数组储存蛇的每一部分的坐标*/int x[100];int y[100];int len;//长度int speed;//速度} snake;voidmap(void);//地图voidupdate_food(void);//更新食物voidmove_snake(void)