资源简介
人工智能 A算法解决八数码问题 VC++实现,通过输入初始数据能得出目标数据以及路径数和时间。
代码片段和文件信息
#include “iostream.h“
#include
#include
#include
#include
static int target[9]={123804765};
//class definition
class eight_num
{
private:
int num[9];
int not_in_position_num;
int deapth;
int eva_function;
public:
eight_num* parent;
eight_num* leaf_next;
eight_num* leaf_pre;
eight_num(int init_num[9]);
eight_num(int num1int num2int num3int num4int num5int num6int num7int num8int num9)
{
num[0]=num1;
num[1]=num2;
num[2]=num3;
num[3]=num4;
num[4]=num5;
num[5]=num6;
num[6]=num7;
num[7]=num8;
num[8]=num9;
}
eight_num(void)
{
for (int i=0;i<9;i++)
num[i]=i;
}
void cul_para(void);
void get_numbers_to(int other_num[9]);
int get_nipn(void)
{return not_in_position_num;}
int get_deapth(void)
{return deapth;}
int get_evafun(void)
{return eva_function;}
void set_num(int other_num[9]);
void show(void);
eight_num& operator=(eight_num&);
eight_num& operator=(int other_num[9]);
int operator==(eight_num&);
int operator==(int other_num[9]);
};
//计算启发函数g(n)的值
void eight_num::cul_para(void)
{
int i;
int temp_nipn=0;
for (i=0;i<9;i++)
if (num[i]!=target[i])
temp_nipn++;
not_in_position_num=temp_nipn;
if (this->parent==NULL)
deapth=0;
else
deapth=this->parent->deapth+1;
eva_function=not_in_position_num+deapth;
}
//构造函数1
eight_num::eight_num(int init_num[9])
{
for (int i=0;i<9;i++)
num[i]=init_num[i];
}
//显示当前节点的状态
void eight_num::show()
{
cout< cout<<“ “;
cout< cout<<“ “;
cout< cout<<“\n“;
cout< cout<<“ “;
cout< cout<<“ “;
cout< cout<<“\n“;
cout< cout<<“ “;
cout< cout<<“ “;
cout< cout<<“\n“;
}
//复制当前节点状态到一个另数组中
void eight_num::get_numbers_to(int other_num[9])
{
for (int i=0;i<9;i++)
other_num[i]=num[i];
}
//设置当前节点状态(欲设置的状态记录的other数组中)
void eight_num::set_num(int other_num[9])
{
for (int i=0;i<9;i++)
num[i]=other_num[i];
}
eight_num& eight_num::operator=(eight_num& another_8num)
{
for (int i=0;i<9;i++)
num[i]=another_8num.num[i];
not_in_position_num=another_8num.not_in_position_num;
deapth=another_8num.deapth+1;
eva_function=not_in_position_num+deapth;
return *this;
}
eight_num& eight_num::operator=(int other_num[9])
{
for (int i=0;i<9;i++)
num[i]=other_num[i];
return *this;
}
int eight_num::operator==(eight_num& another_8num)
{
int match=1;
for (int i=0;i<9;i++)
if(num[i]!=another_8num.num[i])
{
match=0;
break;
}
if (match==0)
return 0;
else
return 1;
}
int eight_num::operator==(int other_num[9])
{
int match=1;
for (int i=0;i<9;i++)
if(num[i]!=other_num[i])
{
match=0;
break;
}
if (match==0)
return 0;
else
return 1;
}
//class definition over
//空格向上移
int move_up(int num[9])
{
for (int i=0;i<9;i++)
if (num[i]==0)
break;
if (i<3)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7432 2012-05-27 18:09 基于A算法八数码问题程序代码\bashuma.cpp
文件 3413 2012-05-27 18:10 基于A算法八数码问题程序代码\bashuma.dsp
文件 522 2012-05-27 18:11 基于A算法八数码问题程序代码\bashuma.dsw
文件 50176 2012-05-27 18:11 基于A算法八数码问题程序代码\bashuma.ncb
文件 48640 2012-05-27 18:11 基于A算法八数码问题程序代码\bashuma.opt
文件 1144 2012-05-27 18:10 基于A算法八数码问题程序代码\bashuma.plg
文件 233509 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\bashuma.exe
文件 268900 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\bashuma.ilk
文件 22529 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\bashuma.obj
文件 268540 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\bashuma.pch
文件 558080 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\bashuma.pdb
文件 50176 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\vc60.idb
文件 61440 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug\vc60.pdb
目录 0 2012-05-27 18:10 基于A算法八数码问题程序代码\Debug
目录 0 2012-05-27 18:11 基于A算法八数码问题程序代码
----------- --------- ---------- ----- ----
1574501 15
- 上一篇:MFC 自定义 MessageBox
- 下一篇:战争模拟器C语言
相关资源
- VC 七巧板 人工智能
- C语言实现A*算法解决传教士和野人渡
- 启发式搜索解决八数码问题
- C语言仿真的aloha算法
- 公交线路最短路径查询
- DWA算法验证(matlab)
- 产生式系统反向推理算法的设计与实
- 罗马尼亚度假问题MFC实现
- 8数码游戏 A*算法 C++实现
- dijkstra算法的c++实现
- 人工智能八数码问题 C++
- N皇后问题构造性方法与启发式修补的
- 遗传算法求解TSP旅行商问题C语言源代
- Frankot and Chellappa算法
- 模式识别ISODATA算法C程序实现
- 基于OpenGL的DDA算法画直线段
- 斗地主AI源代码
- RSA算法C语言实现.zip
- 遗传算法C语言版已运行
- CSA算法MATLAB代码
- 人工智能象棋博弈 含悔棋记录功能
- 《人工智能游戏编程真言》.pdf
- 通信信号盲均衡算法(CMA算法、RLS-
- 简单的极大极小算法实现的井字棋程
- 基于概率模型的wumpus程序
- 人工智能专家系统C语言
- 用C++实现的ISODATA算法
- 人工智能八数码问题解答c++代码及报
- 八数码问题C语言代码
- 野人与传教士C语言程序实现
评论
共有 条评论