#include<stdio.h>
#define X 7
#define Y 7
void PrintMap(char Map[X][Y]){
for(int i=0;i<X;i++){
for(int j=0;j<Y;j++){
printf("%c",Map[j]);
}
printf("\n");
}
}
void Move(char Map[X][Y],int Oldx,int Oldy,int Newx,int Newy){
char a;
if(Map[Newx][Newy] == ' '){
a = Map[Oldx][Oldy];
Map[Oldx][Oldy] = Map[Newx][Newy];
Map[Newx][Newy] = a;
}
}
int main(){
//定义地图
char Map[X][Y] = {
{'*','*','*','*','*','*','*'},
{'*','0','*',' ',' ',' ','*'},
{'*',' ','*',' ','*',' ','*'},
{'*',' ','*',' ','*',' ','*'},
{'*',' ','*',' ','*',' ','*'},
{'*',' ',' ',' ','*',' ',' '},
{'*','*','*','*','*','*','*'}
};
//打印一遍地图
PrintMap(Map);
//定义小人的坐标
int x = 1;
int y = 1;
//定义一个字符用来存储路用来和小人交换位置
// char a;
//用来接收用户输入的命令
char c;
//告诉用户游戏规则
//利用while循环
while(1){
//提醒用户输入
// 定义变量接受用户输入
scanf("%c",&c);
// getchar();
//判断用户输入的数据利用switch
switch(c){
case 'w':
case 'W':
// 利用if判断是否是路,是路则进行交换
Move(Map,x,y,x-1,y);
x--;
break;
case 's':
case 'S':
Move(Map,x,y,x+1,y);
x++;
break;
case 'a':
case 'A':
Move(Map,x,y,x,y-1);
y--;
break;
case 'd':
case 'D':
Move(Map,x,y,x,y+1);
y++;
break;
case 'q':
case 'Q':
return 0;
default:
break;
}
PrintMap(Map);
if(y == 6){
printf("恭喜你通关了!");
return 0;
}
}
return 0;
}