Click a square. The active group's deltas are added to its index, and every target shows whether the delta landed where the move meant to go.
Reference
Legal: landed where the move meant to go
Wrong square: wrapped around the edge
Fell into padding, so it is rejected
Padding cell
Real board (virtual board)
Left the array: listed in the table only
Delta
Index
Square
Result
Board type
Board size
Set by the board type. Choose Free to change it.
Groups
Active group:
Virtual board (marked area)
Board type → loads the piece groups and frames the real 8×8. Switching keeps the same square and piece, so the four boards can be compared directly.
Click a square inside the frame → it becomes the reference. Padding cells can't hold a piece. ± → the negative of the delta is included too. mul → multiples of the delta are included too (n, 2n, 3n…), for sliding pieces.
A ray stops at its first miss, as a move generator would. Keep rays going shows what a loop without an edge check produces. Reverse indexing → cells are counted from the highest number down to 0; deltas still work on the displayed index. Free → your own size and groups. Select area → click two corners; the framed area becomes the real board and everything outside it becomes padding.
Sizes are written columns × rows, as in the literature: 8×8, 16×8, 10×12, 16×12.
Index 0 is a8, the top-left corner, so on 0x88 the last real square 0x77 = 119 is h1. Many sources number from a1 instead, where 0x77 is h8; the delta values are the same. On 16×12 two sentinel rows and four sentinel files come first, so a8 is 36 and h1 is 155.
Hover a row in the table to find its cell. Everything is saved to the browser automatically.