Page 1 of 1

best board representation for variants (javascript) ?

Posted: Sun Dec 10, 2017 2:54 pm
by MahmoudUthman
In your opinion what is the best (most convenient) board representation for move generation only , that can be easily made to support arbitrary variants with the least amount of coding effort (javascript) ?

Re: best board representation for variants (javascript) ?

Posted: Sun Dec 10, 2017 9:53 pm
by hgm
Least coding would be a 1-dimensional array containing the piece types, with a 0x88-type square layout (i.e. gaps between the ranks), and a band of boundary guards around it to prevent pieces could jump off board. You can generate moves from that with a triply mested loop, over the board to find pieces, then over directions the piece moves in, and then (if it is a sliding move) over the number of steps taken in that direction.

This is not very efficient, though, as you spend a lot of time locating your own pieces on the board. And captures are only generated as the last move of a slide, meaning that you basically always generate all the moves, even if you only want captures. There are ways to enormously speed up the move generation, but they all add code complexity.

Re: best board representation for variants (javascript) ?

Posted: Mon Dec 11, 2017 7:49 pm
by tomitank

Re: best board representation for variants (javascript) ?

Posted: Mon Dec 11, 2017 9:22 pm
by Evert
Mailbox with piecelists. You can do generalised 0x88 for alignment tests by making the in-memory board twice as wide as the actual board.

That's what I'd do anyway.