#include#include#include//windows 编程头文件#include#inelude〃控制台输入输出头文件#ifndef__cplusplustypedefcharbool;#definefalse0#definetrue1#endif〃将光标移动到控制台的(x,y)坐标点处voidgotoxy(intx,inty){COORDcoord;coord.X=x;coord.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);}#defineSNAKESIZE100//蛇的身体最大节数#defineMAPWIDTH78//宽度#defineMAPHEIGHT24//高度//食物的坐标struct{intx;inty;}food;//蛇的相关属性 struct{intspeed;//蛇移动的速度intlen;〃蛇的长度intx[SNAKESIZE];//组成蛇身的每一个小方块中 x 的坐标 inty[SNAKESIZE];〃组成蛇身的每一个小方块中 y 的坐标}snake;}//绘制游戏边框 voiddrawMap();//随机生成食物voidcreateFood();//按键操作voidkeyDown();//蛇的状态boolsnakeStatus();//从控制台移动光标voidgotoxy(intx,inty);intkey 二 72〃表示蛇移动的方向,72 为按下“f”所代表的数字//用来判断蛇是否吃掉了食物,这一步很重要,涉及到是否会有蛇身移动的效果以及蛇身增长的效果intchangeFlag=0;intsorce=0;//记录玩家的得分inti;voiddrawMap(){//打印上下边框for(i=0;i<=MAPWIDTH;i+=2)//i+=2 是因为横向占用的是两个位置{〃将光标移动依次到(i,0)处打印上边框gotoxy(i,0);printf("・");〃将光标移动依次到(i,MAPHEIGHT)处打印下边框gotoxy(i,MAPHEIGHT);printf("・");}//打印左右边框for(i=1;i