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.