-
Notifications
You must be signed in to change notification settings - Fork 0
/
ArtBaseSolve.h
49 lines (41 loc) · 1.16 KB
/
ArtBaseSolve.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// BaseSolve.h: interface for the CBaseSolve class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BASESOLVE_H__3CDFD339_AD7A_4777_A827_73004C9AC271__INCLUDED_)
#define AFX_BASESOLVE_H__3CDFD339_AD7A_4777_A827_73004C9AC271__INCLUDED_
#include "GameScript.h"
#include "EngineMother.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
typedef struct Empties{
int HoleID;
int Square;
struct Empties* prev;
struct Empties* next;
}Empties;
class CArtBaseSolve
{
public:
void StopSearch();
CArtBaseSolve();
virtual ~CArtBaseSolve();
int BestMove() const;
int Nodes() const;
int searchDepth;
int curDepth;
void PrepareToSolve(ChessType* board);
virtual double Solve(ChessType* board, int alpha, int beta, ChessType color, int empties, int discdiff, int prevmove)=0;
CEngineMother* m_pEng;
protected:
int count_mobility(ChessType* board, ChessType color) const;
protected:
int bestMove;
bool m_bSearchContinue;
Empties EmHead;
Empties EmList[0x40];
unsigned int HoleID[0x5b];
long nodes;
const static int worst2best[64];
};
#endif // !defined(AFX_BASESOLVE_H__3CDFD339_AD7A_4777_A827_73004C9AC271__INCLUDED_)