八数码问题Java语言实现
import java.util.ArrayList;
import java.util.List;
/**
*
* @author dudizi
* @version 1.0
* @date 2013/3/15
*/
public class BaShuMa {
//方向数组
int[][] dir = { { 0, -1 }, { -1, 0 }, { 0, 1 }, { 1, 0 } };
//搜索表
static Node[] all = new Node[1000000];
//搜索成功后的搜索节点到初始节点的路径上的节点列表 static List<Node> result = new ArrayList<Node>();
//判断此节点的八数码状态是否在搜索表中已经存在 public static boolean hasSame(Node node) {
for (int i = 0; i < all.length; i++) {
if (all[i] != null && node.equals(all[i]))
return true;
}
return false;
}
//搜索八数码解的方法
public void Search(Node node) {
int i = 0;
int cur = 0;
// 把初始状态放到状态表中
all[i++] = node;
while (cur < 1000000) {
if (node != null) {
int x = 0;
int y = 0;
Node exNode = null;
int[][] st = null;
if (!node.isEndState()) {
// 从四个方向去扩展八数码的状态 for (int j = 0; j < 4; j++) {
//计算移动后新的x,y坐标 x = node.getX() + dir[j][0];
y = node.getY() + dir[j][1];
//产生一个新的状态节点
exNode = new Node(x, y);
人工智能关于八数码问题... 23页 免费 八数码问题Java语言实现 6页 免费 人工...算法分析与设计实验周 最优合并问题 八数码问题 — 所做任务说明及题目相关知识...
C语言解八数码问题之人工智... 11页 2财富值 JAVA 八数码问题实现 9页 免费...八数码实验报告 八数码实验报告 : 03122997 学校:上海大学学院:计算机学院 关键字...
八数码问题源程序及注释: 八数码问题源程序及注释: #include<stdio.h> #include<conio.h> int n,m; typedef struct Node { char matrix[10];/*存储矩阵*/...
深度优先实现 /***说明*** 用宽度优先搜索算法实现八数码问题 ***/ #include<iostream> #include<stdio.h> #include<fstream> #include<stdlib.h> #include...
八数码问题形式化描述初始状态: 初始状态向量:规定向量中各分量对应的位置,各...(x) 6 三、算法实现及性能比较这里通过 c++语言来实现各种排序算法(源码见附录...
8页 免费 八数码 12页 免费 八数码问题C语言代码 7页 2财富值搜...如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处...
基于A *算法的八数码问题的优化实现_专业资料。用人工智能领域中经典的A^*算法解决了人工智能中常见的八数码问题。本文首先介绍了八数码问题,然后对A^*算法进行了...
A*算法的探讨及其对八数码问题的实现叶从欢 孙世新 610054 摘 在启发式搜索算法上对 A*算法的定 要: 对人工智能中的经典启发式搜索算法进行了比较详细的介绍,...
5.八数码问题的基类 八数码问题的基类及其成员函数的实现如下: #define Num 9 class TEight { public: TEight(){} TEight(char *fname); virtual void Search...
再依据这种算法用可视化编程语言VC++6.0来实现八数码问题的求解过程,取得了预期的搜索解,提高了搜索效率。维普资讯 http://www.cqvip.com 第L 6卷 20O 6年 ...
我要评论