用c++写一个贪吃蛇的游戏
时间: 2023-05-24 15:04:48 浏览: 72
用C++写的贪食蛇游戏
5星 · 资源好评率100%
写一个贪吃蛇游戏需要涵盖以下几个方面的知识:
1. 图形绘制:使用控制台的图形绘制函数,例如在 Windows 中使用的是 conio.h 中的图形绘制函数。
2. 游戏逻辑:包括贪吃蛇的移动、食物的生成、检测蛇是否撞墙或撞到自己等。
3. 数据存储:使用数组或链表存储贪吃蛇的每一节身体以及食物的位置。
以下是一个简单的示例代码:
```
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define WIDTH 30
#define HEIGHT 20
struct Snake {
int x;
int y;
Snake *next;
};
void update(Snake *head) {
Snake *temp = head;
while (temp->next != NULL) {
temp->x = temp->next->x;
temp->y = temp->next->y;
temp = temp->next;
}
if (kbhit()) {
char ch = getch();
if (ch == 'w') {
temp->y--;
}
if (ch == 's') {
temp->y++;
}
if (ch == 'a') {
temp->x--;
}
if (ch == 'd') {
temp->x++;
}
}
}
void draw(Snake *head, int foodX, int foodY) {
system("cls");
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
if (i == 0 || i == HEIGHT - 1 || j == 0 || j == WIDTH - 1) {
printf("*");
} else if (head->x == j && head->y == i) {
printf("@");
} else if (foodX == j && foodY == i) {
printf("$");
} else {
printf(" ");
}
}
printf("\n");
}
}
int main() {
Snake head = {WIDTH / 2, HEIGHT / 2, NULL};
Snake *tail = &head;
for (int i = 0; i < 5; i++) {
Snake *temp = new Snake
阅读全文