java迷宫鼠_C++ 迷宫算法(迷宫老鼠)
题目: 迷宫是一个矩形区域,它有一个入口和一个出口。在迷宫的内部包含不能穿越的墙或障碍。在图5 - 8所示的迷宫中,障碍物沿着行和列放置,它们与迷宫的矩形边界平行。迷宫的入口在左上角,出口在右下角
以下是自己根据题目要求写的算法:
功能有:1 自动生成10*10迷宫图
2 判断是否有迷宫出口,并且画出路线图
/*******************迷宫算法程序**********************************/
# include
# include
# include
# include
# include
using namespace std;
bool Makework(int Sam[10][10]);//判断迷宫是否有出口
void main()
{
struct _timeb timebuffer;
_ftime(&timebuffer);
unsigned short int tem=timebuffer.millitm;
unsigned short int a=0;
srand(tem);
int quit=1;
int Mou[10][10];
while(quit==1)
{
for(int i=0;i<10;i++)
{
for(int c=0;c<10;c++)
{
Sleep(3);//延时达到完全随机数的效果
_ftime(&timebuffer);
tem=timebuffer.millitm;
srand(tem);
a=rand()%2;
if(rand()%6==1)//再次增加一个随机,增加空格。
{
a=0;
}
Mou[i][c]=a;
}
cout<
}
Mou[0][0]=0;
Mou[9][9]=0;
for(int e=0;e<10;e++)
{
for(int d=0;d<10;d++)
{
if(0==Mou[e][d])
{
cout<
}
else
{
cout<
}
}
cout<
}
cout<
if(Makework(Mou))
{
cout<
}
else
{
cout<
}
for(int o=0;o<10;o++)
{
for(int p=0;p<10;p++)
{
if(4==Mou[o][p])
{
cout<
}
else if(0==Mou[o][p])
{
cout<
}
else
{
cout<
}
}
cout<
}
cout<
cin>>quit;
}
}
bool Makework(int Sam[10][10])
{
int x=0,y=0;//x横y纵坐标Sam[y][x]
int U=-1,D=1,L=-1,R=1;//上下左右
list val;
list::iterator vben=val.begin();
list::iterator vend=val.end();
bool back=false;//是否是在后退,当前后左右都不能移动时。
while((9!=x)||(9!=y))//是否到达终点
{
if((y+D)<10)//下移动
{
if(Sam[y+D][x]==0)
{
Sam[y][x]=4;
if(back)//后退时有新的路线
{
Sam[y+D][x]=4;//新路线设置为新起点
back=false;
}
val.push_back(x);//坐标添加进容器
val.push_back(y);
y=y+D;//移动坐标
continue;
}
}
if((x+R)<10)//右移动
{
if(Sam[y][x+R]==0)
{
Sam[y][x]=4;
if(back)
{
Sam[y][x+R]=4;
back=false;
}
val.push_back(x);
val.push_back(y);
x=x+R;
continue;
}
}
if(y+U>=0)//上移动
{
if(Sam[y+U][x]==0)
{
Sam[y][x]=4;
if(back)
{
Sam[y+U][x]=4;
back=false;
}
val.push_back(x);
val.push_back(y);
y=y+U;
continue;
}
}
if((x+L>=0))//左移动
{
if(Sam[y][x+L]==0)
{
Sam[y][x]=4;
if(back)
{
Sam[y][x+L]=4;
back=false;
}
val.push_back(x);
val.push_back(y);
x=x+L;
continue;
}
}
if(!val.empty())//前后左右不能移动或者移动后都有阻挡,那么后退。 { back=true; list::iterator vend=val.end(); --vend; y=*vend; --vend; x=*vend;//修改坐标 val.pop_back(); val.pop_back(); continue; } else { return false; } } return true;}
java迷宫鼠_C++ 迷宫算法(迷宫老鼠)相关推荐
- c 实现走迷宫流程图_c语言迷宫问题程序功能介绍.设计思路.数据结构设计及用法说明程序结构(流程图).各模块的功能及程序说明....
满意答案 qiniy808451 2014.01.06 采纳率:40% 等级:13 已帮助:8084人 原来也做过,以下是写的源代码,里面有部分注释,应该能看懂,可以运行.总结的话,把代码写进去 ...
- java迷宫_java实现迷宫算法--转
沿着所有方向进行探测,有路径则走,没有路径则从栈中回退. 回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法.从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达, ...
- java动画迷宫寻路_[人工智能] 迷宫生成、寻路及可视化动画
前言 数据结构准备 迷宫生成算法 迷宫寻路算法 前言 本次带来迷宫相关的算法,迷宫的算法涉及到不少经典的图论算法,在游戏中NPC这些算法被大量的运用,深入了解和学习这些算法是为开发游戏打下坚实的基础. ...
- 【算法】机器人走迷宫(适用于走迷宫、最短路径算法)-20200412
标题:机器人走迷宫(适用于走迷宫.最短路径算法) 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通行:示例:给定二维矩阵 0 ...
- 迷宫生成算法和迷宫寻路算法
迷宫生成算法和迷宫寻路算法 大学二年级的时候,作为对栈这个数据结构的复习,我制作了一个迷宫生成算法的小程序,当时反响十分好,过了几天我又用自己已经学的DirectX技术制作了DirectX版的程序.这 ...
- c 实现走迷宫流程图_[求助]:迷宫问题 流程图
得分:0 唉 没大大来帮一下吗 ----------------解决方案-------------------------------------------------------- #includ ...
- c语言程序设计迷宫问题,C语言迷宫问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 大家帮帮忙,在输入迷宫的时候出现非法字符程序就错误,如何让他在输入非法字符的时候提示输入错误,谢谢大家了 void initmaze(int maze[M ...
- qt 3d迷宫游戏_玩迷宫也能解锁孩子空间思维,各年龄必备迷宫书单推荐(附游戏资源下载)...
上篇的文章------- 每日一练 28 语文试卷中惊现数学问题?!(文理什么时候都是一家.)mp.weixin.qq.com 提到了方位感是数学里很重要的一项技能,同时分享了几个锻炼方位感的小游戏 ...
- 编程题走迷宫_编程题迷宫求解
迷宫求解问题 摘 要:用矩阵表示迷宫,将矩阵表示的迷宫转换成无向图, 用邻接表存储.对无向图从入 口结点开始广度优先搜索, 用一个一维数组存储各个结点的前驱结点的编号, 通过出口结点 Vn 找到其前驱 ...
最新文章
- LRU(Least Recently Used)算法的理解
- linux安装hadoop记录
- 黑马程序员——java语言基础——组合,关联,聚合的区别
- python重定向_在Python中使用urlopen()防止“隐藏”重定向
- Win11系统使用Excel表格的时候很卡怎么办
- ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
- C++语言基础 —— STL —— 算法 —— unique() 的使用
- Python精通-Python函数使用
- 一文读懂-Impala
- 导入jasperreports出现Cannot resolve com.lowagie:itext:2.1.7.js6异常、生成PDF中文不显示中文解决方法、使用命令安装jar包
- Proteus仿真51单片机
- 【WPS】您选定的文件类型不支持包含多份工作表的工作簿。
- 【python实战】二:乒乓球比赛对手问题
- hdu 6184 三元环数目
- burst什么意思_burst是什么意思_burst的用法
- 使用电脑过程中突然无法复制粘贴了
- 123457123457#0#-----com.cym.YuErBaiKe02--前拼后广--育儿百科
- javascript错误:对象不支持此属性或方法
- Bootrap 项目实战(微金所前端首页)第三部分(CSS,js源码)
- c语言编程一对新出生的兔子,C语言兔子生兔子的问题(3中解法)
热门文章
- Android音乐播放器的比较。
- win10是linux发行版,网友调侃Win10是最好的Linux发行版
- 海康威视SDK二次开发通过云台参数设置控制摄像机的位置
- mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)
- HuffMan编码C语言实现
- 高三计算机教学总结,2021年高三信息技术教学工作总结范文.doc
- 智能PID软件-AVEVA Diagrams设备符号导入
- 国外的服务器国内可以直连吗,国内服务器和境外服务器有什么区别?
- 如何在r的图片中画出特定点的水平线和垂直线_平面设计新手如何利用点线面进行构图...
- Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用