7z文件

自动生成迷宫和迷宫自动寻路OpenGL版(源代码+演示程序) 评分:

大学二年级的时候,作为对栈这个数据结构的复习,我制作了一个迷宫生成算法的小程序,当时反响十分好,过了几天我又用自己已经学的DirectX技术制作了DirectX版的程序。这几天回过头看自己的文章,感觉温故而知不足。温故是因为唤醒了我对迷宫算法的回忆,知不足是因为我那个程序一点儿也没有按照面向对象的思路去做。还是那一套C的思想。 我打算重新制作迷宫程序。这次和以前不同,我学习了C++、STL、Lua、OpenGL,还有很多很多对游戏开发很实用的知识。因此我打算将自己的迷宫重新写一遍,使用面向对象的思想。
2012-12-14 上传 大小:685KB
立即下载
其他文档
人工智能迷宫寻路源代码

人工智能之迷宫寻路源代码,运用启发式算法实现迷宫寻路功能。

立即下载
rar文件
c语言-广度优先-迷宫寻路-程序+源代码

c语言 广度优先 迷宫寻路 程序 源代码 大二时候做的,控制台界面

立即下载
rar文件
PHP树生成迷宫及A*自动寻路算法完整代码

迷宫算法是采用树的深度遍历原理,这样生成的迷宫相当的细,而且死胡同数量相对较少! 任意两点之间都存在唯一的一条通路。 至于A*寻路算法是最大众化的一全自动寻路算法

立即下载
rar文件
C#实现4种经典迷宫生成算法和迷宫寻路算法

C#实现4种经典迷宫生成算法和迷宫寻路算法,4种经典的迷宫生成算法是:(1)使用并查集算法生成,(2)使用深度优先算法生成,(3)使用随机算法生成,(4)使用递归切割算法,而迷宫寻路使用A*算法。

立即下载
zip文件
VC6版走迷宫,带自动生成地图,自动寻路功能

VC6.0 开发的走迷宫游戏,DFS自动生成地图,自动寻路,关卡切换,刷新地图,倒计时等功能

立即下载
7z文件
迷宫c语言自动寻路并标记

迷宫c语言自动寻路并标记走过的路的方向,并且注释很清楚。。

立即下载
zip文件
java 迷宫 随机生成 自动寻找路径 用到树的深度遍历

java 迷宫 随机生成 自动寻找路径 用到树的深度遍历 课程作业 仅供交流

立即下载
zip文件
随机迷宫代码(深度优先和prim算法生成迷宫,自动寻路)

恋情申道友优先肯prim算法随机生成迷宫,有自动寻路功能,做了界面,需要easyX库的支持

立即下载
zip文件
android安卓版迷宫寻路

花了几个小时写的迷宫寻路程序, 有详细注释. 作为初级的入门还不错.

立即下载
zip文件
迷宫自动寻路

win32 知识简单实现迷宫自动寻路,使用stack模板实现的实现的算法

立即下载
rar文件
迷宫寻路演示程序

这是一个用Qt写的关于寻路的小程序。动态的演示了A*, BFS ,DFS ,双向BFS 等算法的寻路过程。有兴趣的可以下来看看,自己还可以修改修改。

立即下载
rar文件
迷宫算法来自动生成迷宫

这是一个迷宫算法,能自动生成迷宫,有较好的图形用户界面,并能找出相关的出口路径。

立即下载
doc文件
c++走迷宫源代码

c++走迷宫源代码

立即下载
zip文件
人工智能课作业-基于python实现Q表格方法解决迷宫寻路问题+源代码+文档说明

人工智能课作业-基于python实现Q表格方法解决迷宫寻路问题+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------- -------------------------------

立即下载
zip文件
《人工智能》大作业-自定义启发式函数并应用A*算法解决迷宫寻路问题+源代码+文档说明

-《人工智能》大作业-自定义启发式函数并应用A*算法解决迷宫寻路问题+源代码+文档说明- 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------- -------------------------------

立即下载
zip文件
A星算法 迷宫寻路源代码

A星算法 迷宫寻路,源代码,注释详细,适合刚刚接触java和算法的人学习

立即下载
zip文件
用c语言编写的迷宫源代码

用c语言编写的三位迷宫源代码,本来长的代码材质的我们去品味!

立即下载
7z文件
3D迷宫(源代码+演示程序)

前面几日我重新实现了迷宫的自动生成方法,并且添加了迷宫自动寻路方法。有了一个独立于GUI的迷宫库,我开始迫不及待地实现三维迷宫了! 下面是我在开发迷宫程序中遇到的问题。 1、怎样将迷宫类的行和列映射到真实的三维坐标中?迷宫应该用哪个参考系来描述? 其实我在制作的时候为了简化,将二维迷宫的左上角与三维的原点重合,二维迷宫的右对应三维的X轴正方向,迷宫的下对应Z轴的正方向。 2、迷宫的“上、下、左、右”在三维中应该叫做什么? 在确定好迷宫的位置后,我们将迷宫的上对应Z轴的负半轴,下对应Z轴的正半轴,左对应X轴的负半轴,右对应Y轴的正半轴。 3、三维点绘制顺序以及OpenGL裁剪模式造成的一些面不可见问题。 这个问题是我在编写二维迷宫没有想到的。主要是因为二维迷宫中描述墙是用一条直线,而到了三维则是一个面。由于在OpenGL中有裁剪模式可以选择,我使用了 glFrontFace( GL_CW ); // 顺时针的绘制为正面 glEnable( GL_CULL_FACE ); // 剔除不是正面的面 进行设定,也就是说,所有在摄像机看来是逆时针绘制的图形都无法显示。因此我不得不用同样的顶点绘制两个面。下面是相关的函数: void DrawInnerWall( Point3F& p1, Point3F& p2, Point3F& p3, Point3F& p4 ) { glTexCoord2f( 0.0f, 1.0f ); glVertex3fv( p1 ); glTexCoord2f( 1.0f, 1.0f ); glVertex3fv( p2 ); glTexCoord2f( 1.0f, 0.0f ); glVertex3fv( p3 ); glTexCoord2f( 0.0f, 0.0f ); glVertex3fv( p4 ); } void DrawOuterWall( Point3F& p1, Point3F& p2, Point3F& p3, Point3F& p4 ) { glTexCoord2f( 1.0f, 1.0f ); glVertex3fv( p1 ); glTexCoord2f( 0.0f, 1.0f ); glVertex3fv( p2 ); glTexCoord2f( 0.0f, 0.0f ); glVertex3fv( p3 ); glTexCoord2f( 1.0f, 0.0f ); glVertex3fv( p4 ); } 在编写这些函数的时候尤其注意纹理坐标的绘制顺序。可以在纸上绘制一个草图。下面是我调用的代码: if ( Cell_UpWall( cell ) ) { DrawInnerWall( p8, p7, p3, p4 ); DrawOuterWall( p7, p8, p4, p3 ); } 4、怎样设置阻挡? 设置阻挡的基本原则还是先检测后执行。首先我先尝试着执行走一步,再判断这一步是不是出现了越界问题。如果出现了越界问题,那么不执行这一步,否则执行这一步。为了不让我们无限地靠近墙,我设定了一个gap,即摄像机必须与墙保持gap的距离。 下面是我相关的代码: bool View3D::CanGo( Maze& maze, float step ) { static float gap = m_CellSize.w / 8.0f;// 摄像机与墙最近不能超过的间隔 const Point3F& pos = m_Camera.Pos( ); Point3F tryPos; if ( pos.y > 0 && pos.y < m_CellSize.h )// 在一个墙的高度之内 { m_Camera.TryMoveForward( tryPos, step ); unsigned short row = pos.z / m_CellSize.w + 1, column = pos.x / m_CellSize.w + 1; unsigned long cell = maze.Cell( row, column ); // 根据迷宫小房间的墙来判断是否可行 bool ret = true; if ( Cell_UpWall( cell ) ) ret &= ( tryPos.z - gap > ( row - 1 ) * m_CellSize.w ); if ( Cell_DownWall( cell ) ) ret &= ( tryPos.z + gap < row * m_CellSize.w ); if ( Cell_LeftWall( cell ) ) ret &= ( tryPos.x - gap > ( column - 1 ) * m_CellSize.w ); if ( Cell_RightWall( cell ) ) ret &= ( tryPos.x + gap < column * m_CellSize.w ); return ret; } return true; } 但是这里还是出现了一点小Bug,摄像机在移动至一个墙角时再也无法移动了。我想可能是我设定的gap有问题。暂时我还拿不出什么有效的办法。 5、绘制二维视图的问题。 这其中迷宫绘制的环节与我上次写的代码基本一致。关键在于箭头的绘制。当摄像机移动时,我们需要更新二维视图中箭头的角度。难点在于如何确定这个角度?二维中我们使用的x-y坐标系,三维中我们需要重点关注的是x-z坐标系。注意这一点,摄像机默认是向着(0,0,-1)看的。设需要旋转的角度为rotateAngle1,摄像机的位置位CameraPos,那么有这样的公式: rotateAngle1 = 90° + arctan( CameraPos.z / CameraPos.x ) 又由于glRotate()是沿着逆时针旋转的,所以最终旋转角度 rotateAngle = 360° - ( rotateAngle1 ) = 270° - arctan( CameraPos.z / CameraPos.x ) math.h里面提供了atan2()函数,可以提供在(-π/2, π/2)范围内的角度。把这个问题解决了,那么箭头的绘制以及更新也就变得不那么困难了。

立即下载
zip文件
java小游戏迷宫游戏自动生成路径自动找路

java小游戏迷宫游戏自动生成路径自动找路 eclipse编译,解压即可打开!欢迎下载学习,如有问题私信看到会回复。这里需要五十个字,所以后面这段都是为了补充字数的,并没有什么意思。

立即下载
热门资源标签
Global site tag (gtag.js) - Google Analytics