c语言贪吃蛇最简单代码?

发布于 2021-05-18 07:36:48      浏览 178

c语言贪吃蛇最简单代码?

详情:

1、 #include <stdio.h> 2、 #include <windows.h> 3、 #include <time.h> 4、 #include <conio.h> 5、 #define frame_height 20 //define map size 6、 #define frame_width 40垍 7、 #define UP 'w' //define operate key垍 8、 #define DOWN 's' 9、 #define LEFT 'a' 10、 #define RIGHT 'd' 11、 int i,j,k; 12、 char ch=UP; //initial direction垍 13、 int grow=0; //flag: if snake grow垍 14、 struct Food{ 15、 int x; 16、 int y; 17、 }food;垍 18、 struct Snake{ 19、 int x[50]; 20、 int y[50]; 21、 int len; 22、 int speed; 23、 }snake; //snake[0] is head 24、 void init_map(void); 25、 void update_food(void); 26、 void move_snake(void);垍 27、 int is_alive(void); 28、 void get_speed(void); 29、 void gotoxy(int x, int y); 30、 int main()垍 31、 { 32、 init_map(); //初始化地图垍 33、 while(1)垍 34、 { 35、 update_food(); //是否产生食物垍 36、 get_speed(); //获取速度垍 37、 move_snake(); //移动蛇身 38、 Sleep(snake.speed); //移动速度 39、 if(!(is_alive())) //蛇的死活(撞墙或自食) 40、 break; 41、 } 42、 printf("Game Over!");垍 43、 getch(); 44、 return 0; 45、 } 46、 //initialize垍 47、 void init_map(void) 48、 { 49、 //initial food 50、 srand(time(NULL)); 51、 food.x=rand()%(frame_height-2)+1; 52、 food.y=rand()%(frame_width-2)+1;垍 53、 gotoxy(food.x, food.y);垍 54、 printf("!"); 55、 //initial snake 56、 snake.x[0]=frame_height/2;垍 57、 snake.y[0]=frame_width/2; 58、 gotoxy(snake.x[0], snake.y[0]);垍 59、 printf("@");垍 60、 snake.len=3; 61、 snake.speed=200; 62、 for(k=1;k<snake.len;k++)垍 63、 {垍 64、 snake.x[k]=snake.x[k-1]+1; 65、 snake.y[k]=snake.y[k-1]; 66、 gotoxy(snake.x[k], snake.y[k]); 67、 printf("@"); 68、 } 69、 //initial bar 70、 for(j=0;j<frame_width;j++) 71、 { 72、 gotoxy(0, j); 73、 printf("#"); 74、 gotoxy(frame_height-1, j); 75、 printf("#"); 76、 }垍 77、 for(i=1;i<frame_height-1;i++) 78、 {垍 79、 gotoxy(i, 0); 80、 printf("#"); 81、 gotoxy(i, frame_width-1); 82、 printf("#");垍 83、 } 84、 } 85、 //generate food 86、 void update_food() 87、 { 88、 if(snake.x[0]==food.x&&snake.y[0]==food.y) 89、 { 90、 srand(time(NULL)); 91、 food.x=rand()%(frame_height-2)+1; 92、 food.y=rand()%(frame_width-2)+1;垍 93、 gotoxy(food.x, food.y); 94、 printf("!"); 95、 snake.len++; 96、 grow=1; 97、 } 98、 } 99、 //move snake 100、 void move_snake() 101、 { 102、 if(kbhit()) 103、 ch=getch(); 104、 if(!grow) 105、 {垍 106、 gotoxy(snake.x[snake.len-1], snake.y[snake.len-1]); 107、 printf(" "); 108、 } 109、 for(k=snake.len-1;k>0;k) 110、 { 111、 snake.x[k]=snake.x[k-1]; 112、 snake.y[k]=snake.y[k-1]; 113、 }垍 114、 switch(ch) 115、 {垍 116、 case UP: snake.x[0];break; 117、 case DOWN: snake.x[0]++;break; 118、 case LEFT: snake.y[0];break; 119、 case RIGHT: snake.y[0]++;break; 120、 default: break; 121、 } 122、 gotoxy(snake.x[0], snake.y[0]); 123、 printf("@"); 124、 grow=0; 125、 gotoxy(frame_height, 0); 126、 } 127、 //is alive 128、 int is_alive(void) 129、 { 130、 if(snake.x[0]==0||snake.x[0]==frame_height-1||snake.y[0]==frame_width-1||snake.y[0]==0) 131、 return 0; 132、 for(k=1;k<snake.len;k++) 133、 if(snake.x[k]==snake.x[0]&&snake.y[k]==snake.y[0]) 134、 return 0; 135、 return 1; 136、 }垍 137、 //speed up垍 138、 void get_speed(void) 139、 { 140、 if(snake.len<=6) snake.speed=200; 141、 else if(snake.len<=10) snake.speed=100; 142、 else if(snake.len<=20) snake.speed=50;垍 143、 else if(snake.len<=30) snake.speed=30; 144、 else snake.speed=20; 145、 }垍 146、 //move cursor 147、 void gotoxy(int x, int y)垍 148、 { 149、 HANDLE hout;垍 150、 COORD cor; 151、 hout=GetStdHandle(STD_OUTPUT_HANDLE); 152、 cor.X=y; 153、 cor.Y=x; 154、 SetConsoleCursorPosition(hout,cor);垍 155、 }垍

上一篇:愤世疾俗是什么意思? 下一篇:门禁原理及系统结构?

相关推荐

  • struct在c语言中是什么意思
    struct在c语言中是什么意思 struct在c语言中的意思是结构体,是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。在c语言中,可以定义结构体类型,将……

    其他 发布于 2022-06-13 18:42:35 浏览 304

  • c语言四种基本数据类型
    c语言四种基本数据类型 C语言有四种基本数据类型:整型,浮点型,指针,聚合类型(数组和结构体)。整型家族有九种数据类型:字符型(char), 有符号字符型(signed char),无符……

    其他 发布于 2022-06-12 18:42:33 浏览 392

  • 蓝屏代码0x000001a
    蓝屏代码0x000001a 以win7为例,其屏幕出现蓝屏代码0x000001a,主要是由问题的驱动程序.有缺陷或不兼容的硬件与软件造成的,从技术角度讲,表明在内核模式中……

    其他 发布于 2022-06-11 09:13:51 浏览 294

  • 手机屏幕脱落最简单的修复方法
    手机屏幕脱落最简单的修复方法 手机屏幕脱落最简单的修复方法:可以用粘性较好的双面胶(只能暂时性)处理,还可用玻璃胶但一定要小心,不然玻璃胶水流进液显,否则其显屏就……

    手机 发布于 2022-06-01 17:29:14 浏览 318

  • c语言return0什么意思
    c语言return0什么意思 c语言return0的意思是指返回到主函数的值为0。c语言是一门面向过程.抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效……

    其他 发布于 2022-05-31 23:14:32 浏览 284

  • 蓝屏代码7b怎么修复
    蓝屏代码7b怎么修复 1.修复系统引导,检查磁盘文件系统是否损坏; 2.重新安装系统,重建系统引导; 3.如果不能重装系统,则问题出在硬盘上,可能是硬盘出现坏道,需……

    其他 发布于 2022-05-31 17:00:30 浏览 263

  • 微信登录失败代码10003
    微信登录失败代码10003 微信登录失败代码10003的原因可能是公众号小程序配置的回调域名与请求的域名不一致导致的。

    其他 发布于 2022-05-27 23:09:52 浏览 261

  • 开发语言有哪些
    开发语言有哪些 常见的开发语言有:Java.C++.C语言.net.C#.VB(Visual Basic).VFP(Visual FoxPro ).ASP.JSP.Python.PHP.PERL.Ruby.Ada.Lisp等。 ……

    其他 发布于 2022-05-24 08:32:59 浏览 209

  • 手机号国家代码
    手机号国家代码 中国的国际电话代码是:86,拨打国际长途需要加拨国际字冠:00。从国外打往中国的电话,拨0086加区号加电话号码就可以了。国家代码(或国家……

    手机 发布于 2022-05-24 06:42:29 浏览 299

  • 面向过程语言有哪几种
    面向过程语言有哪几种 面向过程的语言也称为结构化程序设计语言,是高级语言的一种,主要包括:C语言,C++,pthen,汇编语言等。在面向过程程序设计中,问题被看作一……

    其他 发布于 2022-05-21 08:34:25 浏览 366