75 if(t == CycleType::Tour)
87 return (left + right)/2 - ((right - left)%4 == 2? 1: 0);
114 const int A_left = (midy - 1)*w + midx - 3;
115 const int A_right = (midy - 2)*w + midx - 1;
117 const int B_left = (midy - 1)*w + midx;
118 const int B_right = (midy - 3)*w + midx + 1;
120 const int C_left = (midy + 1)*w + midx;
121 const int C_right = midy*w + midx + 2;
123 const int D_left = (midy + 2)*w + midx - 2;
124 const int D_right = midy*w + midx - 1;
148 const int y = rect.
m_nTop;
155 else if(w == 8 && h == 6)
158 else if(w == 6 && h == 8)
161 else if(w == 8 && h == 8)
164 else if(w == 10 && h == 8)
167 else if(w == 8 && h == 10)
170 else if(w == 10 && h == 10)
173 else if(w == 12 && h == 10)
176 else if(w == 10 && h == 12)
int m_nTop
Top-most vertical co-ordinate.
void Join(CBoard &b, int midx, int midy)
Join 4 sub-boards.
int m_nLeft
Left-most horizontal co-ordinate.
bool InsertDirectedMove(int src, int dest)
Insert a directed move.
int GetHeight()
Get height.
CBoard * m_pTile8x8
Pointer to an 8x8 chessboard.
void GenerateBaseCase(CBoard &b, const CRect &rect)
Base of recursion.
CBoard * m_pTile8x10
Pointer to an 8x10 chessboard.
bool DeleteMove(int src, int dest)
Delete a move.
Header for the divide-and conquer generator CDivideAndConquer.
void Generate(CBoard &b, CycleType t, const CRect &rect)
Recursion.
void MakeDirected()
Make into a directed board.
bool IsUndirected()
Undirected board test.
CBoard * m_pTile8x6
Pointer to an 8x6 chessboard.
int Split(int left, int right)
Split coordinates nearly in half.
CDivideAndConquer()
Constructor.
CBoard * m_pTile6x8
Pointer to a 6x8 chessboard.
CBoard * m_pTile10x12
Pointer to a 10x12 chessboard.
int m_nRight
Right-most horizontal co-ordinate.
CBoard * m_pTile6x6
Pointer to a 6x6 chessboard.
CBoard * m_pTile10x8
Pointer to a 10x8 chessboard.
void CopyToSubBoard(CBaseBoard &b, int x, int y)
Copy to sub-board.
void MakeUndirected()
Make into an undirected board.
Base tours for the divide-and-conquer generation algorithm.
CBoard * m_pTile12x10
Pointer to a 12x10 chessboard.
int m_nBottom
Bottom-most vertical co-ordinate.
CBoard * m_pTile10x10
Pointer to a 10x10 chessboard.