本人初学Java,这个算法(呵呵,这个小东西也叫算法的话:我们数据结构老师讲的哦“你们现在学的算法其实都不是算法”)是在做连连看时用到的。
连连中如果把连线规则定义为无限拐点,那么连通这两个节点的工作就和在迷宫中已知起点终点寻路的工作一样了。因此,在写这个算法之前主要参考了两种算法:一种是递归算法,一种是A星寻路算法。不说别的了,先奉上我写的伪码:
public class Node {//把所有的节点包装成一个Node对象,一下为Node中的属性及方法
private String path;//图片路径
private boolean accessible;//节点位置是否为空
private int x;//节点位置信息
private int y;//节点位置信息
private int score;//每个节点的权值
get/set方法略……
}
public boolean sAstar(){
……//获得每个节点是否可通过的信息.简单地,节点上有图片的为不可通过,没有图片的为可通过
……//获得每个节点的得分
//计算得分的规则不惟一,但是所计算出来的得分必须能反映所有节点到终点的距离上的相对大小(这应该是一种估算)
new Stack<Node>();//开启栈
open.push(node1);//把其中一个节点放入开启栈,相当于把这个节点当作迷宫中的起点
new Stack<Node>();// 关闭栈
while (//开启栈不为空) {
j = open.pop();//弹出开启栈顶的节点,称为一个可能的父节点
//因为这种算法找的的路径只有一条,并且关闭栈里最终保存的将是那条最短的路径
……// 清空open栈备待会儿装入周围点
//遍历周围的节点{
if (//正在遍历的节点就是终点){
//returne true:可以连通
} else if (//正在遍历的节点属性为可通过的,并且当前既不在开启栈又不在关闭栈) {
//将正在遍历的节点放入开启栈,以备接下来的判断和排序
}
if (开启栈是空的,也就是会说周围四个点除了有一个可能是来路以外,无路可走了!) {
//当前弹出的那个可能的父节点j节点已经不在可能是父节点了,因此将它的可通行属性设为false
//将刚才放入关闭栈的符节点取出,再压入开启栈
//如果这时关闭栈是空的,那就是说退到起点了,就可以返回false了
}// end if
//将那个可能的父节点放入关闭栈保存起来
//对开启栈排序,确保下次取到的可能父节点为离终点最近的
}// end while
//这个方法中如果可以连通,只有一处可以判断,即上边那个returne true
}
我的整个连连看源码在附件中,不过除了能连无限拐点,以外就没有什么功能了,可以说是一个迷宫了,呵呵<!--StartFragment --> <!--StartFragment -->
分享到:
相关推荐
这个"android电脑ai寻路1.0——源码"项目是将《游戏编程中的人工智能技术》一书中的杂交算法移植到Android环境中的实践案例。这个项目不仅是一个学习工具,也是一个展示如何在移动设备上应用AI技术的例子。 首先,...
安装demo 《游戏编程中的人工智能技术》 电脑AI 杂交算法 移植到android上的应用 算是练手吧,一开始进化趋势不是很理想,调了很9,终于调好了
A*寻路算法是一种在图形或网格环境中寻找最短路径的高效算法,广泛应用于游戏开发、地图导航等领域。它结合了Dijkstra算法的全局最优性和Greedy最佳优先搜索的效率,通过引入启发式函数来估计从起点到目标点的最优...
在伯克利大学的人工智能课程CS188中,学生们会接触到一项具有挑战性的作业——吃豆人游戏。这个游戏不仅是对编程技能的考验,更是对人工智能寻路算法理解的深度挖掘。作业的核心在于实现四种寻路算法,包括宽度优先...
他所理解的中国——评《寻路中国》_张帆 2.caj
本篇将深入探讨如何在CocosCreator中利用JavaScript实现A*自动寻路算法,并结合实际项目——"CocosCreator A*自动寻路demo"进行讲解。 A*(A-star)算法是一种启发式搜索算法,广泛应用于路径规划问题。其核心在于...
在游戏开发领域,自动寻路(Pathfinding)是一项至关重要的技术,它允许游戏中的角色或NPC(非玩家角色)从起点自动找到到达目标点的最短路径。lua是一种轻量级的脚本语言,常被用于游戏开发,因为它易于学习、高效...
自动寻路智能车技术剖析 自动寻路智能车是基于单片机上的运行和ST188的运行原理,旨在实现智能车的自动寻路功能。本文将对自动寻路智能车的设计方案、原理和实现方法进行详细的分析。 一、任务及要求 自动寻路...
《Cocos Creator寻路系统深度解析》 Cocos Creator是一款强大的2D和3D游戏开发引擎,它提供了丰富的工具和框架,使得开发者可以更高效地创建游戏。在游戏设计中,寻路系统是一项至关重要的技术,它使得游戏角色能够...
《基础寻路源代码》是针对游戏开发或人工智能领域中的一种常见问题——寻路算法的实践性学习资源。寻路算法在游戏中的应用非常广泛,例如角色在虚拟世界中的路径规划,NPC(非玩家角色)的智能移动,以及网络游戏中...
### UE5.3.2自动寻路简单案例 #### 一、引言 随着游戏开发技术的不断进步,虚幻引擎(Unreal Engine,简称UE)已成为业界领先的游戏引擎之一,尤其是在虚拟现实(VR)、增强现实(AR)等领域内表现突出。本案例由...
在开发2D游戏时,寻路功能是游戏逻辑中的关键部分,它决定了游戏对象如何从一个位置移动到另一个位置。本项目重点在于实现8方向的寻路功能模拟,这是一种简化版的路径寻找算法,适用于2D环境。我们将讨论8方向寻路的...
在易语言中实现“地图寻路”功能是一项常见的游戏开发或模拟应用的需求。地图寻路涉及的主要知识点包括: 1. **路径规划算法**:地图寻路的核心是路径规划,常用算法有A*(A-star)算法、Dijkstra算法等。A*算法在...
接下来是寻路算法的核心部分——`getLookRoute`函数。该函数接收两个参数:`startnodeid`和`endnodeid`,分别表示起始节点和目标节点的ID。此外,还定义了一些辅助变量: - `MinPath`: 用于存储当前找到的最短路径。...
JavaScript自动匹配自动寻路迷宫寻路JavaScript自动匹配自动寻路迷宫寻路JavaScript自动匹配自动寻路迷宫寻路JavaScript自动匹配自动寻路迷宫寻路JavaScript自动匹配自动寻路迷宫寻路JavaScript自动匹配自动寻路迷宫...
在网上找的基本上都不太齐全,需要自己再去兼容版本(作为初学者的我来说深有体会),而且有些版本也比较老,所以我自己也兼容了cocoscreator2.4.3版本的A星智能寻路 可以配合TiledMap进行地图编辑并生成寻路算法,...
【按键版本_C星寻路插件-2020-10-26.rar】是一个专为游戏开发设计的插件,主要用于实现角色在虚拟世界中的自动寻路功能。这个插件是2020年10月26日发布的版本,可能是开发者为了提升游戏体验而制作的一个工具。在...
**a*算法详解** a*(A-star)算法是一种在图形搜索中用于寻找从起点到终点最短路径的启发式搜索算法。它结合了Dijkstra算法的最优性和BFS(广度优先搜索)的效率,通过引入启发式函数来指导搜索方向,从而更快地...
网格寻路算法是一种在计算机图形学、游戏开发和人工智能领域广泛应用的技术,用于解决路径规划问题。在“creator网格导航寻路”中,我们通常指的是在二维或三维空间中,通过将环境划分为一个格子状的网络,为游戏...