在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这是一个八数码游戏,用户可以随机产生一组1~8的数字显示在棋盘上,然后可以选择自己玩,也可以让计算机计算出最短路径,显示出移动步骤和访问节点个数并可以选择自动演示。用户可以选择让计算机用广度优先与A*算法计算最短路径。
系统总体设计: 总体UML图
核心算法类,包括广度优先和A*算法 扩展最大深度 总体结构与函数的作用在截图中的已经指明,现在分析一下核心算法 广度优先算法: 通过两个函数来完成,一个是扩展 扩展函数中先判断结点是否打到目标,达到目标则返回,否是则若位访问过结点就放入open表中。 broad函数汇总调用扩展函数,将每个结点扩展,直到它返回打到目标。
A*算法: 在广度优先的基础上,加入的估价函数,使用的是求出没个不同的数字距离目标的步数之和加上展开的层数作为估价值。
随机产生棋盘,并判断是否有解
核心代码:
Code
源代码下载地址:http://www.codeplex.com/eightnum/Release/ProjectReleases.aspx?ReleaseId=18551
|
请发表评论