迷宫问题求解 您所在的位置:网站首页 随机搜索可以求解迷宫吗知乎 迷宫问题求解

迷宫问题求解

2024-06-25 14:19| 来源: 网络整理| 查看: 265

经典迷宫问题求解,编译已经通过并且大作业验收,笔者总共写过两次迷宫,第一次是在C语言期末小作业使用递归写的,第二次在暑假小学期使用BFS算法写的,给初入C语言的小伙伴借鉴一下吧(笔者当时写一个小破迷宫花了一周,因为实在找不到参考,网上的代码很杂很乱,绝大部分不能编译,对新手很不友好,各种定义新手很难看不懂,所以我当时就有想法想着给C语言初学者一个好的学习代码!可以少走弯路!) 创建迷宫无非就是两步,第一构建迷宫,第二走迷宫,创建迷宫呢,得先想好怎么存储迷宫,最简单的办法就是数组,然后怎么构建迷宫呢?笔者时间有限,在这不展开论述,大家可以看看其他视频就知道了,这里我也给出全部代码和大家共同学习进步。走迷宫的方法也很多,递归,栈,队列,BFS,DFS都可以,笔者使用两种办法走迷宫。

首先就是笔者第一次写的递归走迷宫,代码如下,代码十分简略,当时水平有限,也就只能靠自己使用递归写出一个简简单单的迷宫,第一份代码比较简单,再菜靠自己也能看懂。

#include #include #include int createMaze(); //创建随机迷宫 int createFreeMaze(); //创建自定义迷宫 void createWall(); //创建迷宫外墙 int visit(int row2, int col2) ; int startI = 1, startJ = 1; // 入口 int success = 0; //迷宫数组 int maze[100][100]; int row = 0; int col = 0; int i,j; //迷宫矩阵,2代表墙壁,0代表通道 //创建迷宫外墙 void createWall() { //创建迷宫外墙,第一行、第一列、最后一行、最后一列均为墙壁 for( i = 0; i for( j = 1; j for( i = 1; i printf("迷宫第%d行,共%d格: ",i,col-3); for( j = 2; j printf("迷宫第%d行,共%d格:",i,col-2); for( j = 1; j int i, j,choice; printf("请输入迷宫行数row(0


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有