下一个c语言的贪吃蛇小游戏
时间: 2024-02-17 11:04:59 浏览: 15
好的,下面是一个简单的 C 语言贪吃蛇小游戏,希望能帮到你。
```c
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
#define WIDTH 40
#define HEIGHT 20
#define INITIAL_LENGTH 3
typedef struct {
int x;
int y;
} Point;
Point snake[WIDTH * HEIGHT];
int snake_length = INITIAL_LENGTH;
int score = 0;
int dx, dy;
Point food;
int map[WIDTH][HEIGHT];
void init() {
int i, j;
srand(time(NULL));
for (i = 0; i < WIDTH; i++) {
for (j = 0; j < HEIGHT; j++) {
map[i][j] = 0;
}
}
for (i = 0; i < snake_length; i++) {
snake[i].x = WIDTH / 2 + i;
snake[i].y = HEIGHT / 2;
map[snake[i].x][snake[i].y] = 1;
}
dx = 1;
dy = 0;
do {
food.x = rand() % WIDTH;
food.y = rand() % HEIGHT;
} while (map[food.x][food.y]);
}
void draw() {
int i, j;
system("cls");
for (i = 0; i < WIDTH + 2; i++) {
printf("#");
}
printf("\n");
for (j = 0; j < HEIGHT; j++) {
printf("#");
for (i = 0; i < WIDTH; i++) {
if (map[i][j] == 1) {
printf("O");
} else if (i == food.x && j == food.y) {
printf("@");
} else {
printf(" ");
}
}
printf("#\n");
}
for (i = 0; i < WIDTH + 2; i++) {
printf("#");
}
printf("\n");
printf("Score: %d\n", score);
}
void update() {
int i;
Point head = {snake[0].x + dx, snake[0].y + dy};
if (head.x < 0 || head.x >= WIDTH || head.y < 0 || head.y >= HEIGHT || map[head.x][head.y] == 1) {
printf("Game over!\n");
exit(0);
}
if (head.x == food.x && head.y == food.y) {
score += 10;
snake_length++;
do {
food.x = rand() % WIDTH;
food.y = rand() % HEIGHT;
} while (map[food.x][food.y]);
} else {
map[snake[snake_length - 1].x][snake[snake_length - 1].y] = 0;
}
for (i = snake_length - 1; i > 0; i--) {
snake[i] = snake[i - 1];
}
snake[0] = head;
map[head.x][head.y] = 1;
}
void input() {
if (kbhit()) {
switch (getch()) {
case 'a':
dx = -1;
dy = 0;
break;
case 'd':
dx = 1;
dy = 0;
break;
case 'w':
dx = 0;
dy = -1;
break;
case 's':
dx = 0;
dy = 1;
break;
case 'q':
exit(0);
}
}
}
int main() {
init();
while (1) {
draw();
update();
input();
Sleep(100);
}
return 0;
}
```
这个小游戏可以在 Windows 系统下运行。在游戏中,你需要控制一个贪吃蛇,吃掉屏幕上随机出现的食物。每吃掉一个食物,你的分数就会增加10分。如果贪吃蛇碰到了边界或者自己的身体,那么游戏就结束了。