C语言迷宫代码分享

#include<stdio.h> #include<stdbool.h> #include <malloc.h> #define M 8 #define N 8 #define maxsize 100 int mg[M+2][N+2]= { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//0 {1, 0, 0, 1, 0, 0, 0, 1, 0, 1},//1 {1, 0, 0, 1, 0, 0, 0, 1, 0, 1},//2 {1, 0, 0, 0, 0, 1, 1, 0, 0, 1},//3 {1, 0, 1, 1, 1, 0, 0, 0, 0, 1},//4 {1, 0, 0, 0, 1, 0, 0, 0, 0, 1},//5 {1, 0, 1, 0, 0, 0, 1, 0, 0, 1},//6 {1, 0, 1, 1, 1, 0, 1, 1, 0, 1},//7 {1, 1, 0, 0, 0, 0, 0, 0, 0, 1},//8 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//9 }; //定义一个迷宫(二维数组),1表示有障碍物 typedef struct{ int i; int j; int di; }box; typedef struct{ box data[maxsize]; int top; }StType; bool mgpath(int xi , int yi, int xe, int ye) { int i, j, k, di, find; StType st; st.top = -1; st.top++; st.data[st.top].i=xi; st.data[st.top].j=yi; st.data[st.top].di = -1; mg[xi][yi] = -1; while(st.top > -1) { i = st.data[st.top].i; j = st.data[st.top].j; di = st.data[st.top].di; if(i == xe && j == ye) { printf("迷宫路径为:\n"); for(k = 0; k<=st.top; k++) { printf("\t(%d, %d)", st.data[k].i,st.data[k].j); if((k+1)%5 == 0) printf("\n"); } printf("\n"); return true; } find = 0; while(di<4 && find == 0) { di++; switch(di) { case 0:i = st.data[st.top].i-1; j = st.data[st.top].j; break; case 1:i = st.data[st.top].i; j = st.data[st.top].j+1; break; case 2:i = st.data[st.top].i+1; j = st.data[st.top].j; break; case 3:i = st.data[st.top].i; j = st.data[st.top].j-1; break; } if(mg[i][j] == 0) find=1; } if(find == 1) { st.data[st.top].di = di; st.top++; st.data[st.top].i = i; st.data[st.top].j = j; st.data[st.top].di = -1; mg[i][j] = -1; } else { mg[st.data[st.top].i][st.data[st.top].j] = 0; st.top--; } } return false; } int main() { if(!mgpath(1, 1, M, N)) printf("Null!"); }

下载地址:

文件名称:迷宫问题C语言代码

文件大小:2KB适用版本:无

更新日期:2016-10-17 22:03作者信息:小文

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

H5 新增的input元素的类型

search类型用于搜索域,如站点搜索或Google搜索。search域显示为常规的文本域。

613
来自专栏深度学习自然语言处理

matplotlib--python的数据可视化二

832
来自专栏奇点大数据

【干货】Pytorch中的DataLoader的相关记录

DataLoader简单介绍 DataLoader是Pytorch中用来处理模型输入数据的一个工具类。通过使用DataLoader,我们可以方便地对数据进行...

9445
来自专栏UE4技术专场

UE4 ReplicationGraph分析

ReplicationDriverClassName="/Script/ProjectName.ClassName"

1452
来自专栏北京马哥教育

Python入门之生成海贼王云图

本教程适合于有一定编程经验的同学,使用Python3,在Jupyter进行调试开发。 涉及的Python基础包括: 变量和函数的定义和使用 列表和字典等数据结构...

29110
来自专栏听雨堂

LegacyText的复制的Bug

        如果要动态复制一个LegacyText的文字,保持原来的中心位置,角度等,但修改其大小,发现有个别文字会偏离真正的中心位置,结果一番跟踪,发现问...

1807
来自专栏Aloys的开发之路

一个比较全面的java随机数据生成工具包

        最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,ExtraRanom。可以看成是Java官方Random类的扩...

2129
来自专栏为数不多的Android技巧

ASCII Art:使用纯文本流程图

我们使用纯文本写代码,有了Markdown又可以使用纯文本写文档,那么对于更直观的信息表达方式——图片,能不能使用纯文本描述呢?

1212
来自专栏李海辰的专栏

Unity 引擎资源管理代码分析 ( 1 )

目前网络上已经有很多介绍 Unity 资源管理机制、和 API 使用方法的文章,但少有文章从 Unity源码层面对其实现进行深度解析。作为一名喜欢打破砂锅璺到底...

7761
来自专栏每日一篇技术文章

OpenGL ES _ 高级03_调试工具

591

扫码关注云+社区