C++基于控制台的迷宫实现(上)
来源:互联网 发布:淘宝助理如何在线发货 编辑:程序博客网 时间:2024/06/05 14:14
1 程序简介
在C++控制台程序中,使用一个二维数组表示迷宫,数组中的元素0表示墙,1表示路,如下代码所示
int maze[8][8] = {1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1};
其中,maze[0][0]表示起点,maze[7][7]表示终点,该程序的输入为从起点到终点的路径,如图1所示。
图1 迷宫的路径显示
2 迷宫分析
每个站立点都四个方向(上、下、左、有),每个方向上都对应一个点。在这四个点中,有一个点是当前站立点的“上一个点”,另外三个点是当前站立点的“下一个点”,如图2所示,红色框为当前站立点,蓝色框为“上一个点”,黄色框为三个“下一个点”。
图2 站立点的四个方向
当前站立点有三种状态,分别是“终点”、“通路”和“死路”。如果当前站立点是“终点”,则停止搜索;如果当前站立点是“通路”,则向下继续走;如果当前站立点是“死路”,则要向回走,然后搜索其它路径。其流程如图3所示。
3 程序实现
3.1 迷宫中每个点的实现
使用一个struct表示迷宫中的每个点。该结构包含了三个成员变量,分别是该点的横坐标,纵坐标和该点的值。
typedef struct MStackElem{int x;int y;int val;}MStackElem;
图3 判断迷宫路径流程
阅读全文
0 0
- C++基于控制台的迷宫实现(上)
- C++基于控制台的迷宫实现(中)
- C++基于控制台的迷宫实现(下)
- 基于Win32控制台的万年历的实现(上)
- Windows上C语言实现设置控制台的颜色
- 迷宫的实现--c语言
- 基于Win32控制台的万年历的实现(下)
- 基于sqlite3实现的简单通讯录程序(控制台)
- 基于sqlite3实现的简单通讯录程序(控制台)
- 迷宫求解问题的简易实现(C++)
- 栈的引用--迷宫算法(c语言实现)
- 求win32下的多线程控制台程序(c实现)
- 迷宫算法(c语言实现)
- 堆栈实现迷宫出路(C语言)
- C语言 迷宫(栈实现)
- 迷宫问题 C语言实现(深搜)
- 迷宫C实现
- 迷宫的实现——基于栈知识
- 吴恩达机器学习笔记(2) 逻辑回归
- PHP json_encode 有序无序问题
- 批量装换文件夹下图片的格式
- 新手指南:DVWA全级别教程之CSRF
- 单链表、头指针、头结点、首元节点
- C++基于控制台的迷宫实现(上)
- 输入输出挂
- NAND flash和NOR flash的区别
- MySql基础教程二(视图,存储过程,游标,触发器,事务,权限,数据类型)
- 最小环flody hdu6080
- Android webview 踩坑经验总结
- hdu1025 LIS
- Enum使用
- hbase性能调优