Magic Move Bitboard (Got rid off rotated Bitboards)
No piece list, no Array[64] board, just plain bitboard
Simple, easy and short code
One symmetric "doMove" function for doMove and undoMove
Includes "divide" option for debugging
Counts 100 Millions of Moves/second (on a 64bit System 200 Millions)
Link: http://home.arcor.de/dreamlike/chess/index.html
Examples:
oliperft 7 "r3k2r/p6p/8/8/8/8/P6P/R3K2R w - - 0 1"
r . . . k . . r
p . . . . . . p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P . . . . . . P
R . . . K . . R
1:14:14
2:192:206
3
4:60120:63792
5:1223784:1287576
6:24161970:25449546
7:528388659:553838205
Nodes: 553838205 ms: 1992 knps: 278031
oliperft 6 "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq"
r . . . k . . r
p . p p q p b .
b n . . p n p .
. . . P N . . .
. p . . P . . .
. . N . . Q . p
P P P B B P P P
R . . . K . . R
1:48:48
2
3:97862:99949
4:4085603:4185552
5:193690690:197876242
6:8031647685:8229523927
Nodes: 8229523927 ms: 50456 knps: 163102