📄 eightdigit.h
字号:
#ifndef EIGHTDIGIT_H
#define EIGHTDIGIT_H
using namespace std;
const static int targetNum[9]={1,2,3,8,0,4,7,6,5};//默认的目标状态
static int jieceng[9]={1,1,2,6,24,120,720,5040,40320};//0-8的阶层
class EightDight{
public:
EightDight();
/*EightDight(const EightDight &ed);*/
EightDight(const int num[]);
//定义空格的移动
bool moveUp();
bool moveDown();
bool moveLeft();
bool moveRight();
//得到节点的评价函数值
void getEvalue1();//W(n)
void getEvalue2();//P(n)
//判断是否可以到达目标状态
bool canSolve(EightDight target);
//重载“==”运算符,以便于只比较两个节点的数字状态而不比较parent指针
bool operator==(const EightDight &ed);
//获得节点的哈希值
int hashval();
//打印状态
void display();
void display2();
EightDight *parent;//指向父节点
EightDight *next;//指向下一个节点
int EDnum[9];
int evalue;//评价函数值
int depth;//节点深度
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -