transpositiontable.h

来自「N数码问题 本程序采用全局择优的启发式搜索算法来解决八数码难题」· C头文件 代码 · 共 34 行

H
34
字号
// TranspositionTable.h: interface for the CTranspositionTable class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TRANSPOSITIONTABLE_H__AFB18C77_6D5A_4126_827B_364124A1595F__INCLUDED_)
#define AFX_TRANSPOSITIONTABLE_H__AFB18C77_6D5A_4126_827B_364124A1595F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//置换表类
class CTranspositionTable  
{
public:
	CTranspositionTable();
	virtual ~CTranspositionTable();

public:
	bool LookUpHashTable(BYTE byBoard[][3]);//查询哈希表中当前节点数据,返回0表示没有找到
	void EnterHashTable(BYTE byBoard[][3]); //将当前节点的值存入哈希表

protected:
	UINT CalHashKey(BYTE byBoard[][3]);//计算给定棋盘的哈希值
	void InitHashKey();                //初始化随机数组
	LONG Rand32();					   //产生32位的随机数

protected:
	BYTE m_byBoardList[1000][3][3];//哈希表,存放已经访问过的棋盘
	UINT m_nHashKey32[10][3][3];   //32位随机数组,用以生成32位哈希值
};

#endif // !defined(AFX_TRANSPOSITIONTABLE_H__AFB18C77_6D5A_4126_827B_364124A1595F__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?