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

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

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

详情:

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

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

相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 开发语言有哪些
    开发语言有哪些 常见的开发语言有: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 浏览 202

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

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

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

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