黑马程序员技术交流社区
标题:
二维数组做的小游戏<迷宫>
[打印本页]
作者:
liuhao_hm
时间:
2015-9-16 21:29
标题:
二维数组做的小游戏<迷宫>
本帖最后由 liuhao_hm 于 2015-9-16 21:47 编辑
// 虽然是个很简单的小游戏,但是自己做出还是挺不错的
#include <stdio.h>
void printMap(char map[11][12], int row, int col);
int main()
{
// 定义地图数组
char map[11][12] = {
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#'},
{'#', ' ', ' ', ' ', '#', '#', '#', ' ', '#', ' ', ' ', '#'},
{'#', 'R', '#', ' ', '#', '#', '#', '#', ' ', ' ', '#', '#'},
{'#', ' ', '#', '#', ' ', ' ', '#', '#', ' ', '#', '#', '#'},
{'#', ' ', '#', '#', '#', '#', '#', '#', ' ', ' ', ' ', '#'},
{'#', ' ', ' ', '#', ' ', '#', ' ', ' ', ' ', '#', ' ', '#'},
{'#', '#', ' ', '#', ' ', ' ', ' ', '#', '#', '#', ' ', '#'},
{'#', '#', ' ', '#', ' ', '#', ' ', '#', '#', '#', ' ', '#'},
{'#', '#', ' ', ' ', ' ', '#', ' ', '#', '#', '#', ' ', ' '},
{'#', '#', ' ', '#', '#', '#', ' ', ' ', '#', '#', '#', '#'},
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#'}
};
int row = sizeof(map) / sizeof(map[0]);
int col = sizeof(map) / row;
// 打印地图
printMap(map, row, col);
// 定义人所在的位置
int rRow = 2;
int rCol = 1;
// 定义终出口位置
int endRow = 8;
int endCol = 11;
// 定义计数器
int num = 0;
// 循环判断玩家是否走出地图
while ('R' != map[endRow][endCol]) {
// 提示用户操作
printf("亲,请输入相应的操作\n");
printf("w(向上移动) s(向下移动) a(向左移动) d(向右移动) \n");
printf("以操作次数%i\n", num++);
// 接收玩家输入的操作
char run = getchar();
getchar();
// 根据玩家输入选择对应操作
switch (run) {
case 'w':
if ('#' != map[rRow-1][rCol]) {
map[rRow][rCol] = ' ';
rRow--;
map[rRow][rCol] = 'R';
}
break;
case 's':
if ('#' != map[rRow+1][rCol]) {
map[rRow][rCol] = ' ';
rRow++;
map[rRow][rCol] = 'R';
}
break;
case 'a':
if ('#' != map[rRow][rCol-1]) {
map[rRow][rCol] = ' ';
rCol--;
map[rRow][rCol] = 'R';
}
break;
case 'd':
if ('#' != map[rRow][rCol+1]) {
map[rRow][rCol] = ' ';
rCol++;
map[rRow][rCol] = 'R';
}
break;
}
// 打印地图
printMap(map, row, col);
}
printf("你太牛逼了\n");
printf("请购买正版,解锁跟多模式哦\n");
return 0;
}
void printMap(char map[11][12], int row, int col)
{
for (int x = 0; x < row; x++) {
for (int y = 0; y < col; y++) {
printf("%c",map[x][y]);
}
printf("\n");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2