第一范文网 - 专业文章范例文档资料分享平台

C++迷宫游戏

来源:用户分享 时间:2025/11/16 12:04:15 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#include #include #include

using namespace std;

void mazeGenerator(char **&,int ,int,int,int ); //声明生成迷宫的函数

void mazeTraverse(char **& ,int ,int ,int ); //声明走迷宫的函数 int main() {int m,n;

cout<<\请输入迷宫的长和宽:\; cin>>m>>n;

char**a; //定义二维指针,记录二维数组 a=new char*[m];

for(int i=0;i

a[i]=new char[n]; //申请二维动态数组 srand (int (time (0))); //调用种子函数,作为rand函数的启动值,参数为time(0)时间函数返回的系统当前时间

int p=rand()%(m-2)+1,q=rand()%(m-2)+1; //用随机数赋值给p、q,p记录入口位置,q记录出口位置 int k=p; //k记录走迷宫到达的位置,初始位置为入口 cout<<\迷宫生成:\<

cout<<\现在进行走迷宫:\<

void mazeGenerator(char**&a,int m,int n,int p,int q)//用于生成任意大小的迷宫,**&a引用二维指针数组, //m、n用于说明迷宫(数组)大小,p、q用于说明出入口的位置 {int i,j;

for(i=0;i

for(int i=1;i

else a[i][j]='.';}

a[p][0]='x',a[p][1]='.';a[q][n-1]='.',a[q][n-2]='.';

for(i=0;i

cout<

void mazeTraverse(char **&a,int k,int m,int n)// 用于实现走迷宫,并输出每移动一步后迷宫的状态, //**&a引用二维指针数组,k记录走迷宫时所到达的位置,m、n用于说明迷宫(数组)大小

{int i,j,t=2,l=0;char ch; do

{switch(t)

//a[k][l]为当前位置 // t=

// 2: a[k+1][l] 向下 // 1: a[k][l+1] 向右 // 4: a[k-1][l] 向上 // 3: a[k][l-1] 向左 // 向下—>向左—>向上—>向右—>向下...... 可实现贴墙走迷宫 {case 2:

{if(a[k+1][l]=='#') {if(a[k][l+1]=='#')

{ if(a[k-1][l]!='#') {a[k-1][l]='x'; k=k-1; t=1;}

else {a[k][l-1]='x';l=l-1;t=4;} } else {

a[k][l+1]='x'; l=l+1; t=2; } }

else {

a[k+1][l]='x'; k=k+1; t=3; }; do

{cin.get(ch);}

while(ch!='\\n'); //按回车键走一步,并输出迷宫走这一步后的状态 for(i=0;i

{if(a[k][l+1]=='#') {if(a[k-1][l]=='#') {if(a[k][l-1]!='#') {a[k][l-1]='x'; l=l-1; t=4;}

else{ a[k+1][l]='x';k=k+1;t=3;} } else

{a[k-1][l]='x';

搜索更多关于: C++迷宫游戏 的文档
C++迷宫游戏.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6bauo8buge6tck19hliv_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top