gyoguogg:

#include

using namespace std;

char _map_[50][50]={//为了节省内存,定义一个小一些的字符数组

//随便做一个地图

"",//这里要留一行空格,一会输出是是从得一行开始的,也就是下一行开始的

"##########",

"#o # ####",//o是主角的位置

"## # #",

"# # #",

"## #######"

};

bool tf=1;

int main(){

for(int i=1;i<=5;i++){//小于等于的数就是你定义的迷宫的行数

cout<<_map_[i]<

}

int x=2,y=1;//主角位置

while(tf){//定义一个bool变量tf,如果主角成功tf归0,循环退出

char ch;

cin>>ch;

if((ch=='W'||ch=='w')&&_map_[x-1][y]!='#'){

_map_[x][y]=' ';//清除原主角位置

x--;//向上移动,所以行数减1

_map_[x][y]='o';//刷新主角位置

}else if((ch=='S'||ch=='s')&&_map_[x+1][y]!='#'){//使用else if,加快效率

_map_[x][y]=' ';

x++;

_map_[x][y]='o';

}else if((ch=='A'||ch=='a')&&_map_[x][y-1]!='#'){

_map_[x][y]=' ';

y--;

_map_[x][y]='o';

}else if((ch=='D'||ch=='d')&&_map_[x][y+1]!='#'){

_map_[x][y]=' ';

y++;

_map_[x][y]='o';

}

if(x==5&&y==2){

tf=0;//成功,退出循环

}

//最后别忘了加上刷新

for(int i=1;i<=5;i++){

cout<<_map_[i]<

}

}

}