用C语言编写一个冒险小游戏
时间: 2023-08-23 21:06:03 浏览: 89
c语言写的一个小游戏
5星 · 资源好评率100%
好的,以下是一个简单的冒险小游戏的 C 语言代码,供您参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 8
#define COL 8
char map[ROW][COL] = {
{'#', '#', '#', '#', '#', '#', '#', '#'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', '#'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', '#'},
{'#', ' ', ' ', ' ', '#', ' ', ' ', '#'},
{'#', ' ', ' ', ' ', '#', ' ', ' ', '#'},
{'#', ' ', ' ', ' ', '#', ' ', ' ', '#'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', '#'},
{'#', '#', '#', '#', '#', '#', '#', '#'}
}; // 地图
int x = 1, y = 1; // 玩家坐标
int ex = 6, ey = 6; // 出口坐标
void drawMap(); // 绘制地图
int check(); // 检查游戏是否结束
int main()
{
srand(time(NULL));
while(1)
{
system("cls"); // 清屏
drawMap(); // 绘制地图
if(check()) // 检查游戏是否结束
break;
int c = getchar();
switch(c)
{
case 'w': // 上
if(map[y-1][x] != '#')
y--; break;
case 's': // 下
if(map[y+1][x] != '#')
y++; break;
case 'a': // 左
if(map[y][x-1] != '#')
x--; break;
case 'd': // 右
if(map[y][x+1] != '#')
x++; break;
}
if(x == ex && y == ey) // 到达出口
{
printf("Congratulations! You Win!\n");
break;
}
}
return 0;
}
void drawMap()
{
int i, j;
for(i = 0; i < ROW; i++)
{
for(j = 0; j < COL; j++)
{
if(i == y && j == x)
printf("@"); // 玩家
else if(i == ey && j == ex)
printf("X"); // 出口
else
printf("%c", map[i][j]); // 地图
}
printf("\n");
}
}
int check()
{
if(map[y][x] == '#') // 撞到墙
{
printf("Game Over! You Lose!\n");
return 1;
}
return 0;
}
```
说明:
该冒险小游戏使用 `map` 数组表示地图,其中 # 表示墙,空格表示通路。
游戏有四个方向:上、下、左、右,通过键盘输入控制。
游戏初始化地图、绘制地图、检查游戏是否结束等操作都在相应的函数中实现。
游戏结束条件为撞到墙或到达出口。
游戏采用延时实现动画效果,通过 `_getchar()` 函数读取键盘输入。
阅读全文