#include <stdio.h>
#include <stdlib.h>
void map(char ditu[11][10])
{
int n = ditu[10][0];
int m = ditu[10][1];
char zhiling;//用户输入移动WASD
//输出数组ditu地图
int i, j;
for(i = 0;i < 10;i++){
for(j = 0;j < 10;j++){
printf("%c",ditu[i][j]);
}
printf("\n");
}
//用户输入
scanf("%c", &zhiling);
getchar();
//判断是否能够移动
if(zhiling == 'S' && ditu[n + 1][m] != '#'){
ditu[n + 1][m] = '0';
ditu[n][m] = ' ';
n++;
}
else if(zhiling == 'D' && ditu[n][m + 1] != '#'){
ditu[n][m + 1] = '0';
ditu[n][m] = ' ';
m++;
}
else if(zhiling == 'A' && ditu[n][m - 1] != '#'){
ditu[n][m - 1] = '0';
ditu[n][m] = ' ';
m--;
}
else if(zhiling == 'W' && ditu[n - 1][m] != '#'){
ditu[n - 1][m] = '0';
ditu[n][m] = ' ';
n--;
}
//返回多个变量给主函数n,m在ditu里面
}
int main(void)
{
int n = 1,m = 0;//下标
//迷宫地图' '表示可移动,'#'表示墙体不可移动,'0'表示人物
char ditu[11][10] =
{
'#', '#', '#', '#', '#', '#', '#', '#', '#', '#',
'0', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#',
'#', ' ', '#', ' ', ' ', ' ', '#', '#', ' ', '#',
'#', ' ', ' ', ' ', '#', '#', ' ', '#', ' ', '#',
'#', '#', '#', ' ', '#', ' ', ' ', '#', ' ', '#',
'#', ' ', ' ', ' ', '#', ' ', '#', '#', ' ', '#',
'#', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', '#',
'#', '#', ' ', ' ', ' ', '#', '#', '#', ' ', '#',
'#', ' ', ' ', '#', '#', ' ', ' ', ' ', ' ', '#',
'#', '#', '#', '#', '#', '#', '#', '#', ' ', '#',
n , m ,
};
do {
map(ditu) ;//调用函数来移动
system("cls");
printf("%d%d",n,m);//观察n,m是否变化
}while(ditu[9][8] != '0');//'0'到达终点
}