I'm debugging my engine using Stockfish, and I suddenly notice a massive difference between mine and Stockfish.
Board and fen string
+---+---+---+---+---+---+---+---+
| r | n | b | q | | k | | r |
+---+---+---+---+---+---+---+---+
| p | p | | P | b | p | p | p |
+---+---+---+---+---+---+---+---+
| | | p | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
| | | B | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
| P | P | P | | N | n | P | P |
+---+---+---+---+---+---+---+---+
| R | N | B | Q | K | | | R |
+---+---+---+---+---+---+---+---+
Fen: rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8
The results from Stockfish:
go perft 2
a2a3: 34
b2b3: 34
c2c3: 34
g2g3: 34
h2h3: 34
a2a4: 34
b2b4: 33
g2g4: 34
h2h4: 34
d7c8q: 31
d7c8r: 31
d7c8b: 41
d7c8n: 41
e2g1: 34
e2c3: 34
e2g3: 34
e2d4: 34
e2f4: 34
b1d2: 34
b1a3: 34
b1c3: 34
c4b3: 34
c4d3: 34
c4b5: 34
c4d5: 35
c4a6: 33
c4e6: 35
c4f7: 32
c1d2: 34
c1e3: 34
c1f4: 34
c1g5: 32
c1h6: 31
h1f1: 34
h1g1: 34
d1d2: 34
d1d3: 34
d1d4: 34
d1d5: 35
d1d6: 28
e1f1: 34
e1d2: 34
e1f2: 28
e1g1: 34
Nodes searched: 1486
The result from my engine:
a7a5: 43
a7a6: 43
b7a6: 1
b7b5: 43
b7b6: 44
b8a6: 44
b8d7: 44
c6b5: 1
c6c5: 44
c6d5: 2
c8d7: 40
d8a5: 42
d8b6: 42
d8c7: 42
d8c8: 4
d8d1: 2
d8d2: 2
d8d3: 2
d8d4: 2
d8d5: 2
d8d6: 2
d8d7: 42
d8e8: 44
e7a3: 42
e7b4: 43
e7c5: 43
e7d6: 44
e7f6: 43
e7g5: 43
e7h4: 42
f2d1: 43
f2d3: 43
f2e4: 43
f2g4: 43
f2h1: 43
f2h3: 43
f7e6: 1
f7f5: 43
f7f6: 43
f8e8: 4
f8f7: 1
f8g8: 43
g7g5: 42
g7g6: 43
g7h6: 1
h7h5: 43
h7h6: 43
h8g8: 44
Nodes searched: 1486
Now I know my engine does something incorrect, but why does Stockfish do game notation as if it's white moving on perft 2? Since white starts at perft 1, shouldn't black move at perft 2?
Does white move for every single depth?
f2h1
. Showing from and to. Edit: That weird moment you have no idea where you got EGN from. This is smith notation