c语言贪吃蛇最简单代码?
发布于 2021-05-18 07:36:48
浏览 184
详情:
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
}垍
上一篇:愤世疾俗是什么意思?
下一篇:门禁原理及系统结构?