资源简介
八数码问题是人工智能经典难题之一。问题是在3×3 方格盘上,放有八个数码,剩下一个为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始位置转化为目标位置。本文介绍用A星算法,采用估计值h(n)(曼哈顿距离)和g(m)(当前深度)的和作为估计函数。

代码片段和文件信息
package MyAI;
import javax.swing.border.titledBorder;
import javax.swing.*;
import javax.swing.JLabel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
public class Astar extends Jframe {
private JLabel label;
private static final long serialVersionUID = 1L;
private static final int DEFAULT_WIDTH=764;
private static final int DEFAULT_HEIGHT=371;
private JPanel panel;
JPanel contentPane;
JPanel jPanel1 = new JPanel();
titledBorder titledBorder1 = new titledBorder(““);
JPanel jPanel2 = new JPanel();
JButton jButton3 = new JButton();
JCheckBox jCheckBox1 = new JCheckBox();
JCheckBox jCheckBox2 = new JCheckBox();
JPanel jPanel3 = new JPanel();
titledBorder titledBorder2 = new titledBorder(““);
JButton jButton6 = new JButton();
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JPanel jPanel5 = new JPanel();
JLabel jLabel2 = new JLabel();
JLabel jLabel5 = new JLabel();
JTextField jTextField5 = new JTextField();
JTextField jTextField10 = new JTextField();
JRadioButton jRadioButton3 = new JRadioButton();
JRadioButton jRadioButton4 = new JRadioButton();
JButton jButton8 = new JButton();
GridLayout gridLayout1 = new GridLayout(3 3);
JButton[][] jButtonGroup_start = new JButton[3][3];
JButton[][] jButtonGroup_end = new JButton[3][3];
java.awt.GridLayout gridLayout2 = new GridLayout(3 1);
JLabel jLabel6 = new JLabel();
JLabel jLabel7 = new JLabel();
javax.swing.Timer time;
int current_step = 0;
String change_img = “red“;
Node auto_node;
Vector vc = new Vector();
int[][] end = { { 0 1 2 } { 3 4 5 } { 6 7 8 } };
int[][] start = { { 0 1 2 } { 3 4 5 } { 6 7 8 } };
int local_x = 0;
int local_y = 0;
public Astar() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
titledBorder1 = new titledBorder(“状态设置“);
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(764 371));
settitle(“八数码演示程序“);
jPanel1.setBorder(titledBorder1);
jPanel1.setBounds(new Rectangle(8 16 135 256));
jPanel1.setLayout(null);
jPanel2.setBorder(BorderFactory.createEtchedBorder());
jPanel2.setBounds(new Rectangle(18 86 99 147));
jPanel2.setLayout(null);
jButton3.setBounds(new Rectangle(10 15 81 26));
jButton3.setText(“随机生成“);
jCheckBox1.setText(“起始状态“);
jCheckBox1.setBounds(new Rectangle(10 61 80 23));
jCheckBox2.setText(“目标状态“);
jCheckBox2.setBounds(new Rectangle(10 88 80 23));
jPanel3.setBorder(BorderFactory.createEtchedBorder());
jPanel3.setBounds(new Rectangle(153 52 213 191));
jPanel3.setLayout(gridLayout1);
jLabel6.setText(“初始状态:“);
jLabel6.setBounds(new Rectangle(154 15 64 25));
jLabel7.setText(“目标状态:“);
jLabel7.setBounds(new Rectangle(397 13 70 26));
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1454 2010-04-08 20:08 人工智能之八数码问题\digits\red1.jpg
文件 1848 2010-04-08 20:09 人工智能之八数码问题\digits\red2.jpg
文件 1741 2010-04-08 20:10 人工智能之八数码问题\digits\red3.jpg
文件 1557 2010-04-08 20:10 人工智能之八数码问题\digits\red4.jpg
文件 1774 2010-04-08 20:10 人工智能之八数码问题\digits\red5.jpg
文件 1761 2010-04-08 20:10 人工智能之八数码问题\digits\red6.jpg
文件 1562 2010-04-08 20:11 人工智能之八数码问题\digits\red7.jpg
文件 1878 2010-04-08 20:11 人工智能之八数码问题\digits\red8.jpg
..A.SH. 365056 2010-04-08 20:11 人工智能之八数码问题\digits\Thumbs.db
文件 10103 2010-04-09 09:17 人工智能之八数码问题\MyAI\Astar.java
文件 6175 2010-04-09 22:16 人工智能之八数码问题\MyAI\EightNumber.java
文件 644 2010-04-08 10:33 人工智能之八数码问题\MyAI\RandomState.java
文件 15160 2010-04-09 22:19 人工智能之八数码问题\MyAI.jar
文件 335360 2010-04-21 23:25 人工智能之八数码问题\人工智能实验报告.doc
目录 0 2010-04-21 23:25 人工智能之八数码问题\digits
目录 0 2010-04-21 23:25 人工智能之八数码问题\MyAI
目录 0 2010-04-21 23:25 人工智能之八数码问题
----------- --------- ---------- ----- ----
746073 17
相关资源
- java做的聊天系统(包括正规课程设计
- java 人事管理系统 课程设计
- 数据库设备管理系统课程设计论文J
- Java课程设计(15个经典案例)
- JAVA计算器实验报告与源码
- 人事信息管理系统 java课程设计
- 学生信息管理系统 JAVA课程设计
- JSP课程设计-留言本 jsp mysql tomcat实现
- 东南大学 JAVA课程设计 学生信息管理
- 自动出题系统(java 课程设计)
- 软件工程课程设计报告--java学生管理
- java课程设计《客房管理系统》
- 数据库课程设计:图书管理系统
- java 课程设计机票管理系统Java+MySQL
- 基于SSH的网上书城_j2ee专周_源代码+数
- 山东大学数据结构课程设计
- 哈工大J2EE课程设计
- java课程设计保存计算过程的计算器
- 双鱼林JSP基于SSH2教务选课成绩管理系
- java课程设计游戏:急速飞行[绝不坑爹
- 多功能拼图游戏软件 java课程设计 含
- JAVA网吧计费管理系统191156
- Java课程设计酒店管理系统+报告文档
- java贪吃蛇课程设计156714
- 编译原理课程设计-java版
- Python基于Django图书管理系统课程设计
- Java学生宿舍管理系统课程设计
- java标准化考试系统
- 酒店管理系统课程设计全部源码java工
- Java课程设计 源码彩色中国象棋游戏
评论
共有 条评论