资源简介
一个java实现的A*算法来实现八数码,十五数码问题。启发函数为f(n)=d(n)+p(n)。本程序中八数码、十五数码均可计算,预先定义了初始状态和最终状态(可以根据需求改为控制台输入的)。

代码片段和文件信息
import java.util.Arrays;
public class FifteenDigitalNode implements Comparable{
private int Fn;//启发函数值
private int Hn;//Hn=Pn不在位状态到在位状态距离之和
private int Gn;//Gn=Dn 当前的深度
private int[][] nodeValue;//状态矩阵
private FifteenDigitalNode parent;//当前状态的父状态
public FifteenDigitalNode(int fn int hn int gn int[][] nodeValue) {
super();
Fn = fn;
Hn = hn;
Gn = gn;
this.nodeValue = nodeValue;
}
public int getFn() {
return Fn;
}
public int getHn() {
return Hn;
}
public int getGn() {
return Gn;
}
public int[][] getNodeValue() {
return nodeValue;
}
public void setFn() {
Fn = Hn+Gn;
}
public void setHn(int hn) {
Hn = hn;
}
public void setGn(int gn) {
Gn = gn;
}
public void setNodeValue(int[][] nodeValue) {
this.nodeValue = nodeValue;
}
public FifteenDigitalNode getParent() {
return parent;
}
public void setParent(FifteenDigitalNode parent) {
this.parent = parent;
}
@Override
public int compareTo(object o) {
// TODO Auto-generated method stub
FifteenDigitalNode fNode=(FifteenDigitalNode)o;
return this.Fn-fNode.getFn();
}
//判断当前状态是否是目标状态
public boolean isTarget(FifteenDigitalNode target){
return Arrays.equals(getNodeValue() target.getNodeValue());
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2018-01-05 16:35 FifteenDigital2\.classpath
文件 391 2018-01-05 16:35 FifteenDigital2\.project
文件 598 2018-01-05 16:35 FifteenDigital2\.settings\org.eclipse.jdt.core.prefs
文件 1810 2018-01-06 15:32 FifteenDigital2\bin\FifteenDigitalNode.class
文件 3220 2018-01-10 10:49 FifteenDigital2\bin\Test.class
文件 3182 2018-01-10 10:42 FifteenDigital2\bin\Utils.class
文件 1347 2018-01-05 22:46 FifteenDigital2\src\FifteenDigitalNode.java
文件 2840 2018-01-10 10:49 FifteenDigital2\src\Test.java
文件 3463 2018-01-10 10:42 FifteenDigital2\src\Utils.java
目录 0 2018-01-11 20:03 FifteenDigital2\.settings
目录 0 2018-01-11 20:03 FifteenDigital2\bin
目录 0 2018-01-11 20:03 FifteenDigital2\src
目录 0 2018-01-11 20:03 FifteenDigital2
----------- --------- ---------- ----- ----
17152 13
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论