Well.. 900+ moves, long capture sequences (a move that is composed of x captures...). I wrote a simple engine for a similar game (much simpler than draughts though), my solution to the problem was to simply have a very simple move structure (say from, to) and to treat all non-terminal positions [i.e. where you are forced to move] as 1-ply search extensions.Rein Halbersma wrote:English draughts is played on a chessboard with 3 rows of men each in the initial position. It's in 10x10 International draughts (4 rows of men each) where very large move lists can be a problem for engines with fixed move arrays. There exist positions with hundreds (~900) moves, which come about from equivalent capture sequences of 10+ pieces along different routes. You could of course eliminate them by comparing the locations of captured pieces but that also has a cost. I typically allocate stack for 16 moves and go to the heap if more moves are required.
That way you only have a couple of moves per position to deal with and fixed move representation.