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]< } } }