qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

用c语言写一个贪吃蛇游戏

时间2023-04-17 17:02:12 提问来自 江苏省苏州市 的网友 分类创作 浏览456
#include<stdio.h> #include<windows.h> #include<time.h> //定义地图大小,可以自己改变地图大小,但是要保证地图的最小值不能小于10*10; #define MapX 20 //X轴长度 定义20行 10列的游戏界面 即20*10 的游戏界面 #define MapY 10 //Y轴长度 //定义方向常量; 方向用数字来表示:上下左右分别为1,2,3,4; 表示上一步的方向用5表示; 空白处用0表示; 蛇头和食物用9和8来表示。 根据这些数字来显示出不同的字符。比如:0显示为‘ ’ ,1显示为‘↑’ ,2显示为‘↓’ ,3显示为‘←’ ,4显示为'→' ; 9和8对应'@''$'; 5对应' ' ; 其他数字都会默认显式' ' ; 根据这些常量来实时更新地图。 默认情况是snake_dir=5(上一步方向) ; snake_head=9(蛇头) ; food=8(食物) ; blank=0(无元件) ; 后期会逐步加入障碍物功能。 默认情况是障碍物由6来标识。 加入障碍物之后会重新定义一些常量来标识不同的元件。 比如wall=6 (墙壁); snakebody = 7 (贪吃蛇); food = 8 (食物); blank = 0 (无元件) 等 本代代理中并没有使用这些新常量。 const int UP = 1; //上方向键对应1 const int DOWN = 2; //下方向键对应2 const int LEFT = 3; //左方向键对应3 const int RIGHT = 4; //右方向键对应4 const int PREVIOUS_DIR = 5; //前一步的方法 const int SNAKEHEAD = 9; //当前位子标识 const int FOOD = 8 ; //食物标识 const int BLANKSITE= 0 ; //无元件标识 //定义一些函数(函数原型声明) void map(); /*打印地图*/ void createFood(); /*生成食物*/ void moveSnake(); /*使得贪心性动*/ void controlDir(); /*控制snake_dir*/ bool isDead(); /*判断死亡*/ bool isEatFood(); /*是不是能够eatFood*/ void initMap(); /*初始化map*/ void welcomeGameShow() /*打印welcome界面 */ //定义一些参数 char map[MapX][MapY]; ///存储当前地图信息 struct SnakeNode{int x,y;}snake[100]; ///储存当前位子信息 int lenOfSnakeBody=3; ///储存当前body length bool isDeadFlag=false; ///储存deadflag bool isEatFlag=false ///储存eatflag char inputKey=' ' ///储存inputkey char snake_dir=' ' ///储存snake direction char preDir=' ' ///

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 新时代雷锋精神的内容研究 下一篇 建设教育强国的青年力 量