chessgame.h
来自「这是使用 C++ 写的棋子游戏」· C头文件 代码 · 共 68 行
H
68 行
#ifndef CHESS_GAME_WRAPPER_H_
#define CHESS_GAME_WRAPPER_H_
#include "AlphaBetaEngine.h"
#include "Alphabeta_HH.h"
#include "AlphaBeta_TTEngine.h"
#include "AspirationSearch.h"
#include "Define.h"
#include "Eveluation.h"
#include "FAlphaBetaEngine.h"
#include "HistoryHeuristic.h"
#include "IDAlphabetaEngine.h"
#include "MoveGenerator.h"
#include "MTD_fEngine.h"
#include "NegaMaxEngine.h"
#include "NegaScout_TT_HH.h"
#include "PVS_Engine.h"
#include "SearchEngine.h"
#include "TranspositionTable.h"
#include "q3valuestack.h"
class CMoveStack
{
public:
CMoveStack();
~CMoveStack();
void push(UNDOMOVE const& move);
UNDOMOVE pop();
void clear();
bool isEmpty();
private:
Q3ValueStack<UNDOMOVE> stack;
};
typedef BYTE BoardType[10][9];
class CChessGame
{
public:
enum GameOverState{BLACK_WIN, RED_WIN, DRAW};
CChessGame();
virtual ~CChessGame();
const char ** getEngineList() const;
int getBestEngine() { return 7; }
CSearchEngine* createEngine(int numEngine);
void setEngine(CSearchEngine* anEngine);
CSearchEngine* getEngine() { return engine; }
BoardType* getBoard() { return &board; }
void initChessBoard();
void invertBoard();
CHESSMOVE* computerRun(bool forRed);
bool moveChess(const CHESSMANPOS& from, const CHESSMANPOS& to, bool blackOnTop);
bool redo(); /* redo a change, return true if changed */
bool undo(); /* undo a change, return true if changed */
GameOverState isGameOver();
private:
BYTE board[10][9];
CSearchEngine* engine;
CMoveStack undoStack;
CMoveStack redoStack;
CMoveGenerator* moveGenerator;
CEveluation* evaluator;
CHESSMOVE computerMove;
void validateEngine();
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?