c语言图形库简单的迷宫游戏
时间: 2023-07-13 20:14:18 浏览: 46
以下是一个简单的迷宫游戏,使用C语言和图形库实现:
```c
#include <graphics.h>
#include <conio.h>
#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
// 迷宫地图
int map[10][10] = {
{1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,1,0,0,1},
{1,0,1,0,1,0,1,0,1,1},
{1,0,0,0,1,0,0,0,0,1},
{1,1,1,0,1,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,1,1,1,0,1,1,1,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,1,1,1,0,1,1,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
// 玩家位置
int x = 1, y = 1;
// 绘制迷宫地图
void drawMap() {
int i, j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (map[i][j] == 1) {
setfillstyle(SOLID_FILL, WHITE);
bar(j*40, i*40, j*40+40, i*40+40);
} else {
setfillstyle(SOLID_FILL, GREEN);
bar(j*40, i*40, j*40+40, i*40+40);
}
}
}
}
// 绘制玩家
void drawPlayer() {
setfillstyle(SOLID_FILL, RED);
bar(y*40, x*40, y*40+40, x*40+40);
}
// 移动玩家
void movePlayer(int dir) {
int newX = x, newY = y;
switch (dir) {
case LEFT:
newY--;
break;
case RIGHT:
newY++;
break;
case UP:
newX--;
break;
case DOWN:
newX++;
break;
}
if (map[newX][newY] == 0) {
x = newX;
y = newY;
}
}
int main() {
initwindow(400, 400, "Maze Game");
drawMap();
drawPlayer();
while (1) {
if (kbhit()) {
int ch = getch();
if (ch == 27) {
break; // ESC键退出
}
movePlayer(ch);
cleardevice();
drawMap();
drawPlayer();
if (x == 8 && y == 8) {
outtextxy(150, 180, "Congratulations! You win!");
break;
}
}
}
getch();
closegraph();
return 0;
}
```
运行以上代码,可以看到一个简单的迷宫游戏窗口,按方向键控制玩家移动,找到终点即可获胜。