MOUSE老鼠走迷宫游戏程序
/*------------------------------------------------------------------------------
--------------
//文件名称:MazeMouse.cpp
//功 能:找出走出迷宫的所有路径,以及最短路径。
//作 者:晒晒周
//单 位:??
--------------------------------------------------------------------------------
------------*/
/*------------------------------------------------------------------------------
--------------
//修改
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
:编号 日期 修改者 备注
// 0 2003.04.14 晒 晒 周 创 建
--------------------------------------------------------------------------------
------------*/
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "stdio.h"
double dMeans=0,视频教程'>dwalkLen=10000;//dMeans表示走出迷宫的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,dWalkLen表
示当前走出迷宫最少步数
char Maze[10][52]={
{"###################################################"},
{"% ## #### ### ### # ####"},
{"# ## # ### ### ###### ### ############ # # #"},
{"# ## ## ### ## ## # # ## # # ####"},
{"# # # ## ## ### # # ######### # # # ##"},
{"# # # # ## ########## #### ## # #"},
{"# ## ### ## ## ### #### ## ## # # ######### #"},
{"# # # ## ## # ## #### # # ## ####"},
{"#### ## #### #### ## # ### ## ## @"},
{"###################################################"},
}; //迷宫
int MazeFlag[10][51]; //迷宫的标志:0表示未走过,i(i=1,2,3,4)表示已经走过了,i
表示方向。
int MazeMin[10][51]; //路径最小的迷宫的标志
void Walk(int nx,int ny);//走迷宫的函数,nx是列,ny是行
void PrintOut(); //打印路径及迷宫的函数,同时比较获取路径较短的行走方法
int Judge(int nx,int ny,int i);//判定在第nx列ny行向第i个方向走是否可以,可以返
回1否则返回0。
//i=1表示向右,2表示向下,3表示向左,4表示向上
/*------------------------------------------------------------------------------
---------------
//行走迷宫函数: void Walk (int nx,int ny) //功能:判定是否已经走出迷宫,假如走出则打印路径,假如没有则开始逐个方向判定是否可以行走,
// 假如都不能行走,或已经返回。则退出该位置,即将该位置的标志写为0表明未走过。
//无返回值,形参nx为当前位置的列,ny为当前位置的行。
--------------------------------------------------------------------------------
-------------*/
void Walk(int nx,int ny)
{
if (Maze[nx][ny]=='@')//判定是否走出迷宫,@是迷宫出口标志
PrintOut(); //走出则打印出迷宫及行走路径
else //未走出迷宫
{
for {
if (Judge(nx,ny,i)) //假如列为nx行为ny的位置向i方向是否可以行走
{
MazeFlag[nx][ny]=i;//将标志位置i表明该位置向i方向可行走
if (i==1) //分散处理,根据不同的i来确定下一步的位置,以便行走。
Walk(nx,ny+1);
else if (i==2)
Walk(nx+1,ny);
else if (i==3)
Walk(nx,ny-1);
else if (i==4)
Walk(nx-1,ny);
}
}
MazeFlag[nx][ny]=0;//假如4个方向都走不通,或者回朔则清空该点标志位,置为0表明未走过。
}
}
/*------------------------------------------------------------------------------
---------------
//打印函数:void PrintOut()
//功能: 打印第dMeans种方法的在迷宫中的行走路径,以及通过比较找出目前行走步数最少的行走方法。
//无返回值,无形参。dMeans表示当前行走方法的种类。dCount是用来计算此种方法用了多少步。
--------------------------------------------------------------------------------
-------------*/
void PrintOut()
{
int nx,ny;
double dCount=0;
dMeans++;
cout<<"The "<
0&&(Maze[nx][ny-1]==' '||Maze[nx][ny-1]=='@')&&MazeFlag[nx][ny-1]==0)
return 1;
else
return 0;
}
else if (i==4)//判定向上可否行走
{
if (nx>0&&(Maze[nx-1][ny]==' '||Maze[nx- return 1;
else
return 0;
}
else
return 0;
}
int main(int argc, char* argv[]) {
int nx,ny,ni,nj;
cout<<"迷宫游戏: "<
本文档为【MOUSE老鼠走迷宫游戏程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。