进入游戏界面和获胜界面如上图,代码如下。可作如下操作,比如计分,保存得分,得分排名展示等丰富游戏。
#include
#include
#define ROWS 10
#define COLS 10
// 定义迷宫地图
char maze[ROWS][COLS] = {
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#'},
{'#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#'},
{'#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', '#'},
{'#', ' ', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#'},
{'#', ' ', '#', '#', '#', '#', '#', '#', ' ', '#'},
{'#', ' ', '#', ' ', ' ', ' ', ' ', '#', ' ', '#'},
{'#', ' ', '#', ' ', '#', '#', ' ', '#', ' ', '#'},
{'#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#'},
{'#', '#', '#', '#', '#', '#', '#', '#', ' ', '#'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', '#'}
};
// 定义老鼠和粮仓的位置
int mouseRow = 5;
int mouseCol = 5;
int foodRow = 8;
int foodCol = 8;
// 显示迷宫地图
void displayMaze() {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
if (i == mouseRow && j == mouseCol) {
printf("@ "); // 老鼠的位置
}
else if (i == foodRow && j == foodCol) {
printf("$ "); // 粮仓的位置
}
else {
printf("%c ", maze[i][j]);
}
}
printf("\n");
}
}
// 移动老鼠
void moveMouse(char direction) {
int newRow = mouseRow;
int newCol = mouseCol;
switch (direction) {
case 'w': // 上
newRow--;
break;
case 's': // 下
newRow++;
break;
case 'a': // 左
newCol--;
break;
case 'd': // 右
newCol++;
break;
}
// 判断是否可以移动
if (maze[newRow][newCol] == ' ') {
maze[mouseRow][mouseCol] = ' ';
mouseRow = newRow;
mouseCol = newCol;
maze[mouseRow][mouseCol] = '@';
}
}
int main() {
char direction;
while (1) {
//system("clear"); // 清屏,适用于Linux/macOS
system("cls"); // 清屏,适用于Windows
displayMaze();
printf("请输入移动方向(w-上;s-下;a-左;d-右):");
scanf(" %c", &direction);
moveMouse(direction);
// 判断是否到达粮仓
if (mouseRow == foodRow && mouseCol == foodCol) {
printf("恭喜,老鼠找到了粮仓!\n");
break;
}
}
return 0;
}