资源简介
八数码问题是人工智能经典难题之一。问题是在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语言下的
- java 课程设计 JPEG图片操作
- Java+SQL2000学籍信息管理子系统课程设
- java课程设计 客房管理系统
- 数据库课程设计教务管理系统
- 中国象棋对弈系统_java课程设计
- Java画图板课程设计报告只有报告没有
- 课程设计jsp 新闻发布系统 完整版
- Android课程设计简单实用课程表项目
- 日历记事本 java课程设计
- java课程设计-拿火柴游戏
- java局域网聊天+文件传输系统
- java版围棋v4
- j2ee课程设计题目:资源
- JSP 校园共享单车管理系统
- Java固定资产管理系统课程设计源码整
- JAVA课程设计--员工信息管理系统
- Java语言-透明网桥模拟课程设计报告
- 操作系统课程设计Java实现
- 人工智能微信小程序之识别图片上的
- java课程设计java jsoup 爬取1688网站信息
- 人工智能中产生式系统中动物识别系
- 吉林大学软件学院卓班数据库系统原
- java在线聊天系统课程设计报告
- 重庆理工大学软件工程、计算机学院
- myeclipse实现的Java课程设计.docx
- 数据库课程设计-水费收费管理系统
- 用JAVA开发网络聊天室
- java课程设计-银行卡存取款管理系统
评论
共有 条评论