C 语言版贪食蛇游戏源代码(我自己写的) 热1已有 58 次阅读 2011-01-18 17:57 #include #include #include #include #define UP 0 #define DOWN 1 #define LEFT 2 #define RIGHT 3//宏定义,定义四个方向--0 1 2 3分别代表上下左右 #define TURN_NUM 1000//可以保存的最多转弯次数,一条蛇同时最多只能有1000次的弯曲 #define INIT_LENGTH 8 #define UP_EDGE 0 #define DOWN_EDGE 24 #define LEFT_EDGE 0 #define RIGHT_EDGE 79//定义上下左右四个边界 #define X 0//初始状态下蛇的身体坐标(LEFT_EDGE+X,UP_EDGE+Y) #define Y 0//决定初始状态下蛇的身体相对于游戏界面原点(LEFT_EDGE,UP_EDGE)的位置 /*定义全局变量*/ char buf[1000]="@*******";// 决 定初 始 的snake_length的值 : 必 须 与INIT_LENGTH 保持同步 char *snake=buf;//蛇的身体,最长有1000个环节 char FOOD='$';//记录食物的形状 int food_num=0;//记录已经吃下的食物数量 int score=0;//记录当前的得分,由 food_num 决定 int snake_length=INIT_LENGTH;//initializer is not a constant:strlen(snake); int cursor[2]={LEFT_EDGE+20+INIT_LENGTH,UP_EDGE+10};//记录当前光标所指位置 int head[2]={LEFT_EDGE+20+INIT_LENGTH-1,UP_EDGE+10};//记录头部的坐标 int tail[2]={0,0};//记录尾巴的坐标 int old_tail[2];//记录上一步尾巴所在位置 int food[2]={0,0};//记录食物的坐标 int init_position[2]={LEFT_EDGE+X,UP_EDGE+Y} ;//蛇的初始位置 int direction=RIGHT;//记录当前蛇的头部的运动方向 int turn_point[TURN_NUM][2]; int head_turn_num=0;//记录头部的转弯次数 int tail_turn_num=0;//记录尾巴的转弯次数 int game_over=0;//判断游戏是否结束 /*主方法*/ void main(){ //函数声名 void gotoxy(int x,int y);//移动光标的位置 void cur_state();//测试游戏的当前状态参数 void print_introduction();//打印游戏规则 void init();//初始化游戏 void control();//接收键盘控制命令 void move();//控制身体的运动 void move_up();//向上运动 void move_down();//向下运动 void move_left();//向左运动 void move_right();//向右运动 void update_tail_position();//更新尾巴的坐标 void...