用C++代码写一个贪吃蛇
时间: 2023-12-27 15:53:52 浏览: 86
用c++写的贪吃蛇
好的,以下是一个简单的用C语言编写的贪吃蛇游戏:
```
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
// 定义游戏区域的大小
#define width 20
#define height 20
// 定义蛇的长度和速度
int length = 3;
int speed = 200;
// 定义蛇的位置和方向
int snakeX[100] = {4, 3, 2};
int snakeY[100] = {1, 1, 1};
char direction = 'r';
// 定义食物的位置
int foodX;
int foodY;
// 初始化游戏界面
void init() {
// 隐藏光标
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
// 清空屏幕
system("cls");
// 生成食物
srand(time(NULL));
foodX = rand() % width;
foodY = rand() % height;
// 输出界面
for (int i = 0; i < width + 2; i++) {
printf("#");
}
printf("\n");
for (int i = 0; i < height; i++) {
printf("#");
for (int j = 0; j < width; j++) {
if (i == foodY && j == foodX) {
printf("O");
} else if (i == snakeY[0] && j == snakeX[0]) {
printf("H");
} else {
int isBody = 0;
for (int k = 1; k < length; k++) {
if (i == snakeY[k] && j == snakeX[k]) {
printf("X");
isBody = 1;
break;
}
}
if (!isBody) {
printf(" ");
}
}
}
printf("#\n");
}
for (int i = 0; i < width + 2; i++) {
printf("#");
}
printf("\n");
printf("Use arrow keys to move. Press q to quit.\n");
}
// 更新游戏界面
void update() {
// 根据方向更新蛇的位置
for (int i = length - 1; i > 0; i--) {
snakeX[i] = snakeX[i - 1];
snakeY[i] = snakeY[i - 1];
}
if (direction == 'u') {
snakeY[0]--;
} else if (direction == 'd') {
snakeY[0]++;
} else if (direction == 'l') {
snakeX[0]--;
} else if (direction == 'r') {
snakeX[0]++;
}
// 判断是否吃到食物
if (snakeX[0] == foodX && snakeY[0] == foodY) {
length++;
speed -= 10;
foodX = rand() % width;
foodY = rand() % height;
}
// 判断是否撞墙或撞到自己
if (snakeX[0] < 0 || snakeX[0] >= width || snakeY[0] < 0 ||
阅读全文