c 语言随机生成迷宫,[原创]递归随机迷宫生成算法详解
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
char cw[][4]={" ","┃","━","┗","┃","┃","┏","┣","━"//map
,"┛","━","┻","┓","┫","┳" ,"╋"};char m[50][50];char *getw
(int x,int y){return cw[(m[x] [y-1]?0:1)|(m[x+1][y]?0:2)|(m [
x][y+1]?0:4)|(m[x-1][y]?0:8) ];}int sr(int x,int y){ static
int d[4][2]={{0,1},{1,0},{0 ,-1},{-1,0}};int zx=x*2,zy=y*
2,nx,tn=rand()%2? 1:3,i;m[ zx][zy]=1;for(i=0,nx=rand()%
4;i<4;i++,nx=(nx+tn)%4)if (m[zx+2*d[nx][0]][zy+2*d[nx
][1]]==0)m[zx+d[nx][0]][ zy+d[nx][1]]=1,sr (x+d[nx]
[0],y+d[nx][1]); return 0;} void Make_Maze(int x,
int y){int z1,z2;for ( z1=0,z2=2*y+2;z1<=2*x+2;
z1++)m[z1][0]=1,m[z1] [z2]=1;for(z1=0, z2=2*x
+2;z1<=2*y+2;z1++)m[ 0][z1]=1,m[z2][z1]=1;m
[1][2]=1;m[2*x+1][2 *y]=1;srand((unsigned
)time(NULL) ); sr( rand()%x+1,rand()%y+
1);}int main(void ){int x=15,y=10,z1,
z2;Make_Maze(x,y );for(z2=1;z2<=y*2
+1;z2++){for(z1 =1;z1<=x*2+1;z1++
)printf(m[z1][ z2]?" ":getw(z1
,z2));if(z2<= y*2)putchar(10)
;}return 0;} // Puzzle Game
插一下楼
c 语言随机生成迷宫,[原创]递归随机迷宫生成算法详解相关推荐
- c语言随机迷宫生成方法,[原创]递归随机迷宫生成算法详解
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include char cw[][4]={" ","┃","━& ...
- python自动寻路算法_PHP生成迷宫及自动寻路算法详解
如何使用PHP生成迷宫以及寻路求解?本文主要介绍了PHP生成迷宫及自动寻路算法,并对PHP生成迷宫及自动寻路算法详解.希望对大家有所帮助. 本文实例讲述了PHP树的深度编历生成迷宫及A*自动寻路算法. ...
- C语言实现扫雷完整算法详解~(附完整代码~)
扫雷是一个常见小游戏,那么如何用C语言实现扫雷呢?学习了二维数组之后,我们可将扫雷的网格区域存储为二维数组,从而使用C语言实现扫雷. 目录 1.算法基本思路 2.算法详解 1.初始化数组与打印数组 2 ...
- C#中的递归APS和CPS模式详解(转载)
这篇文章主要介绍了C#中的递归APS和CPS模式详解,本文讲解了累加器传递模式.CPS函数.CPS变换.CPS尾递归.尾递归与Continuation等内容,需要的朋友可以参考下 累加器传递模式(Ac ...
- 二叉树遍历算法详解(递归法+非递归法)
二叉树遍历算法详解 在上一篇C语言实现二叉树中有提到对于二叉树的遍历,包括前序,中序和后续遍历,以及层次遍历 大家已经熟悉了二叉树的前中后序遍历过程,大部分都采用了递归的思想来实现 在leetcode ...
- mysql 获取当前整点_Oracle 生成未来三天的整点时间(步骤详解)
需求:X坐标轴时间都为整点时间,展示未来三天内的预测(x轴展示未来三天的整点时间),每3个小时一个刻度,横坐标共计24个刻度 步骤一:取当前时间 SELECT SYSDATE FROM DUAL 步骤 ...
- c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区
决策树之C4.5算法详解 主要内容 C4.5算法简介 分裂属性的选择--信息增益率 连续型属性的离散化处理 剪枝--PEP(Pessimistic Error Pruning)剪枝法 缺失属性值的处理 ...
- Apollo6.0代码Lattice算法详解——Part5: 生成横纵向轨迹
Apollo6.0代码Lattice算法详解--Part5: 生成横纵向轨迹 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代码部分 ...
- id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用
原标题:从ID3到C5.0的故事:算法详解及实践应用 在前面,我们分别概述性地介绍了决策树的基本知识: 1.算法概述 ID3(Iterative Dichotomiser3)算法可以说决策树算法中最著 ...
- 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】
编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...
最新文章
- powerdesigner 同步mysql 报错_PowerDesigner实用技巧小结 及 导出word,想字段顺序跟模型中一致,如何设置...
- linux的pthread.h
- iOS代码编程规范 根据项目经验汇总
- eeglab中文教程系列(13)-导入cnt文件
- linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...
- python批量下载文件-python 从远程批量下载文件到本地
- 大数据成败之“监”:美团数据质量监管平台这样搭建
- 天融信防火墙NGFW4000配置
- ITK:将图像从一种类型投射到另一种类型,但限制在输出值范围内
- ffmpeg推流时与服务器断开后的自动重连功能的实现
- 从零开始学Pytorch(七)之卷积神经网络
- Linux(五):Ubuntu 16.04 更改系统语言为简体中文(Chinese simplified)
- 机器学习笔记(三):NumPy、Matplotlib、kNN算法 | 凌云时刻
- 推荐一款非常好用的文本替换工具“Replace Pioneer”
- 一文读懂二级分销返利模式,商城系统源码机制分享
- css 改变图片的背景色,css3实现背景图片颜色修改的多种方式
- mlcc应用范围_2019年国内外MLCC行业发展现状分析 下游市场需求带动增长
- css+js实现banner图片轮播
- 前端上传超大文件解决方案
- 银行存储管理系统oracle,课内资源 - 基于JSP和Oracle实现的志愿服务银行系统