1.自己设计一张至少 9*9 的迷宫地图,并按照课上介绍,完成迷宫游戏的开发
给迷宫游戏加上步数限制 n,当不超过 n 步到达出口时,显示游戏成功;如果 n 步还未到
达,显示游戏失败并结束游戏
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
int main()
{
char a[9][10]={"*********","*o * * *","*** * * E","*** * *",
"** * * *","*** ** *","*** * *","** *","*********"};//地图
for(int i=0;i<9;i++)
{
cout<<a[i]<<endl;
}//地图显示
int x=1,y=1,m=0;
while(1)
{
char d;
m++;
if(m>23)//控制步数步数大于23失败
{
cout<<"挑战失败!";
break;
}
else
d=getch();
if(d=='w'&&a[x-1][y]!='*')
{
a[x][y]=' ';
a[x-1][y]='o';
x--;
}//输入w若不为墙向上移动
else if(d=='s'&&a[x+1][y]!='*')
{
a[x][y]=' ';
a[x+1][y]='o';
x++;
}//s——下
else if(d=='a'&&a[x][y-1]!='*')
{
a[x][y]=' ';
a[x][y-1]='o';
y--;
}//a——左
else if(d=='d'&&a[x][y+1]!='*')
{
a[x][y]=' ';
a[x][y+1]='o';
y++;
}//d——右
system("cls");//每次刷新
for(int i=0;i<9;i++)
{
cout<<a[i]<<endl;
if(x==2&&y==8)//到达E成功
{
system("cls");
cout<<"成功到达!";
break;
}
}
}
return 0;
}
3、自动走迷宫
能否去掉按键控制,让小人 1 秒走一步,自己慢慢走到出迷宫
前提条件
小人事先不知道出去的路径(不能人为帮它预设)
它需要自己摸索怎么走出去
#include<iostream>
#include<cmath>
#include<stdlib.h>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<windows.h>
using namespace std;
int main()
{
char a[9][10]={"*********","*o * * *","*** * * E","*** * *",
"** * * *","*** ** *","*** * *","** *","*********"};//地图
int d=0;
int x=1,y=1;
const int move[4][2]={{-1,0},{0,1},{1,0},{0,-1}};//位移矩阵
while (1)
{
system("cls");//刷新地图
for(int i=0;i<9;i++)
{
cout<<a[i]<<endl;
}
Sleep(1000);//每秒一下
while(a[x+move[d][0]][y+move[d][1]]=='*')//依次判断各个方向是否为墙
{
d++;
if(d>3)
d=d-4;//构成循环
}
a[x][y]=' ';
a[x+move[d][0]][y+move[d][1]]='o';
x=x+move[d][0];
y=y+move[d][1];//如果一个方向为空则进行移动
d--;
if(d<0)
d=d+4;//每次更新方向
if(x==2&&y==8)//到达E结束
{
system("cls");
cout<<"成功到达!";
break;
}
}
return 0;
}