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.
best board representation for variants (javascript) ?
Moderators: hgm, Rebel, chrisw
-
- Posts: 27819
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 276
- Joined: Sat Mar 04, 2017 12:24 pm
- Location: Hungary
-
- Posts: 2929
- Joined: Sat Jan 22, 2011 12:42 am
- Location: NL
Re: best board representation for variants (javascript) ?
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.
That's what I'd do anyway.