帮我用c语言编写一个闯关人物只能上下左右移动的迷宫的代码
时间: 2024-09-25 14:06:45 浏览: 28
在C语言中,创建一个简单的迷宫游戏通常涉及到基本的游戏循环、控制结构和二维数组来表示地图。下面是一个简化的例子,它演示了如何让玩家角色(在这里我们只考虑上下左右四个方向)在一个简单的迷宫中移动:
```c
#include <stdio.h>
#define ROWS 5 // 迷宫行数
#define COLS 8 // 迷宫列数
// 定义迷宫地图,0代表空地,1代表墙壁
int maze[ROWS][COLS] = {
{0, 1, 1, 0, 0, 1, 0, 1},
{1, 0, 0, 1, 0, 1, 1, 0},
{1, 0, 0, 1, 0, 0, 0, 1},
{0, 1, 1, 0, 0, 0, 0, 1},
{0, 0, 1, 1, 0, 0, 1, 1}
};
// 检查新位置是否为空地并且不是边界
int is_valid(int x, int y) {
return (x >= 0 && x < ROWS && y >= 0 && y < COLS && !maze[x][y]);
}
void move_player(int player_x, int player_y, char direction) {
switch(direction) {
case 'U':
if(is_valid(player_x - 1, player_y)) {
player_y--;
}
break;
case 'D':
if(is_valid(player_x + 1, player_y)) {
player_y++;
}
break;
case 'L':
if(is_valid(player_x, player_y - 1)) {
player_x--;
}
break;
case 'R':
if(is_valid(player_x, player_y + 1)) {
player_x++;
}
break;
}
printf("Player moved to (%d, %d)\n", player_x, player_y);
}
int main() {
int player_x = 0, player_y = 0; // 初始化玩家位置
char direction;
while(1) {
printf("Enter movement direction (U/D/L/R): ");
scanf(" %c", &direction);
// 玩家移动并更新位置
move_player(player_x, player_y, direction);
// 添加更多的游戏逻辑,比如检查胜利条件或者显示玩家周围的环境等
}
return 0;
}
阅读全文