c++贪吃蛇的帮助手册
时间: 2024-01-02 10:03:20 浏览: 27
以下是C++贪吃蛇的帮助手册:
1. 初始化游戏窗口、蛇、食物的属性
```c++
void gameInit(){
// 先初始化一个游戏窗口
initgraph(WIDE, HEIGHT);
// 初始化蛇
snake.size = 2;
snake.r = 3;
snake.speed = snake.r * 2;
snake.score = 0; // 初始得分
// 初始化每节身体的坐标
for (int i = 0; i < snake.size; i++) {
snake.coordinate[i].x = (snake.size - i) * 2 * snake.r;
snake.coordinate[i].y = HEIGHT / 2; // 纵坐标为窗口的中间
}
snake.dirction = RIGHT;
// 初始化食物
foodInit();
// 设置蛇和食物的颜色
setfillcolor(RGB(255, 210, 81));
}
```
2. 定义蛇和食物的结构体
```c++
// 蛇的结构体
struct Snake {
int size; // 蛇的长度
int r; // 蛇的半径
int speed; // 蛇的速度
int score; // 蛇的得分
COORDINATE coordinate[MAXSIZE]; // 蛇的每节身体的坐标
DIRECTION dirction; // 蛇的方向
} snake;
// 食物的结构体
struct Food {
int r; // 食物的半径
COORDINATE coordinate; // 食物的坐标
} food;
```
3. 食物的随机刷新
```c++
// 食物的初始化
void foodInit() {
srand((unsigned)time(NULL)); // 用时间作为随机数种子
food.r = snake.r;
food.coordinate.x = rand() % (WIDE - 2 * food.r) + food.r; // 随机生成横坐标
food.coordinate.y = rand() % (HEIGHT - 2 * food.r) + food.r; // 随机生成纵坐标
}
// 食物的刷新
void foodRefresh() {
food.coordinate.x = rand() % (WIDE - 2 * food.r) + food.r; // 随机生成横坐标
food.coordinate.y = rand() % (HEIGHT - 2 * food.r) + food.r; // 随机生成纵坐标
}
```
4. 获取按下的键的键值
```c++
// 获取按下的键的键值
void getDirection() {
int key = _getch(); // 获取键值
switch (key) {
case 'w':
case 'W':
if (snake.dirction != DOWN) {
snake.dirction = UP;
}
break;
case 's':
case 'S':
if (snake.dirction != UP) {
snake.dirction = DOWN;
}
break;
case 'a':
case 'A':
if (snake.dirction != RIGHT) {
snake.dirction = LEFT;
}
break;
case 'd':
case 'D':
if (snake.dirction != LEFT) {
snake.dirction = RIGHT;
}
break;
default:
break;
}
}
```