- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用c编程实现简单的贪吃蛇游戏
利用c编程实现简单的贪吃蛇游戏#include stdio.h#include graphics.h#include stdlib.h#include dos.h/** 本游戏中的食物由一个小方格表示* 本游戏中的蛇由多个小方格组成(最少两个)* 在游戏的进行过程中,蛇每吃一格食物,则长度将增加一节(即一个小方格)*//** 该宏定义蛇的最大节数*/#define SNAKE_MAX_LEN 300/** 定义游戏画面在屏幕中的位置*/#define F_LEFT 50#define F_TOP 40#define F_RIGHT 609#define F_BOTTOM 459/** 墙壁的厚度*/#define QB_WIDTH 10/** 表示食物、蛇的小方格的大小*/#define XFG_WIDTH 10/** 蛇的活动区域内横向、纵向可摆放小方格的个数*/#define NUM_H ( (F_RIGHT-F_LEFT+1-2*QB_WIDTH)/XFG_WIDTH )#define NUM_V ( (F_BOTTOM-F_TOP+1-2*QB_WIDTH)/XFG_WIDTH )/** 注: 在设计上面宏的时候,必须满足:* (1) 在屏幕分别率允许的范围内* (2) (F_RIGHT-F_LEFT+1-2*QB_WIDTH)/XFG_WIDTH 必须能整除* (3) (F_BOTTOM-F_TOP+1-2*QB_WIDTH)/XFG_WIDTH 必须能整除*//** 将在蛇的活动区内以小方格为单位的坐标转换成屏幕的像素坐标*/#define X_to_x(x) ( (x) * XFG_WIDTH + (F_LEFT+QB_WIDTH) )#define Y_to_y(y) ( (y) * XFG_WIDTH + (F_TOP+QB_WIDTH) )/** 分别定义 蛇、食物、墙壁的颜色*/#define SNAKE_COLOR RED#define FOOD_COLOR GREEN#define QB_COLOR LIGHTCYAN/** 定义按键扫描码*/#define K_LEFT 0x4b00#define K_RIGHT 0x4d00#define K_DOWN 0x5000#define K_UP 0x4800#define K_ESC 0x011b/** 定义蛇移动的方向*/#define MOVE_RIGHT 1#define MOVE_LEFT 2#define MOVE_UP 3#define MOVE_DOWN 4int score=0; /* 得分 */int gamespeed=50000; /* 游戏速度 *//** 食物的属性*/struct {int x; /* 表示食物小方格左上角的横坐标 */int y; /* 表示食物小方格左上角的纵坐标 */int yes; /* 是否要出现食物 *//* 1 表示需要出现新食物, 0 表示已经存在食物 */}food;/** 蛇的属性*/struct {/** 每个小方格左上角的横坐标(x)、纵坐标(y)*/int x[SNAKE_MAX_LEN];int y[SNAKE_MAX_LEN];int node; /* 蛇的节数 */int direction; /* 蛇移动方向 */}snake;/*图形驱动*/void MyInitGraph(void){int GraphDriver; /* 图形设备驱动程序 */int GraphMode; /* 图形设备模式 */GraphDriver = DETECT; /* 请求自动检测 */initgraph( GraphDriver, GraphMode, );cleardevice();}/*图形结束*/void MyCloseGraph(void){ closegraph();}/* 输出字符串*/void PrintString(const char *str){ setfillstyle(SOLID_FILL,YELLOW);bar(F_LEFT,F_TOP-20,F_RIGHT,F_TOP-20+15);setcolor(BROWN);settextstyle(DEFAULT_FONT,0,1);outtextxy(F_LEFT+5,F_TOP-20+5,str);}/** 游戏画面,左上角坐标为(F_LEFT,
文档评论(0)