Hello Steven:
sje wrote:Thank you for your perft results for Steve's two positions.
But I still need more positions, particularly where a bug is likely to show up in the first three perft ply.
In all testing to date, I have seen only two perft errors in Bozo. The first was due to a typo (I make lots of these) in the castling descriptor table for Black king side castling; this was found quickly. The second was a coding error on my part which allowed a pawn pinned against a king by a queen or rook from behind to be unable to advance; this took a half hour to find and fix.
There will probably be more errors when I get to the checks-only move generator.
I took a fast look in Internet and I found some perft test positions that can bump unshown bugs (these webs were not new to me). Here are the URL's (surely you know all of them):
http://www.albert.nu/programs/sharper/perft.asp
http://www.rocechess.ch/perft.html
https://sites.google.com/site/numptychess/perft
Some of FEN strings are repeated and also you have a few of them. But there are some that you did not post in the first post of this thread. I do not know if these positions are
tricky below four plies or more. Please try it, just in case... One of them that can be helpful for promotion bugs is the next one (it is very curious for me; it was founded in RoceChess site):
Code: Select all
n1n5/PPPk4/8/8/8/8/4Kppp/5N1N b - - 0 1
Finally, if you understand C (I suppose so), the code of qperft (by Muller) could be helpful for your checks-only move generator... or at least I think so!
Here is qperft code. For qperft code, it is better to change
%10lld and
%12lld for
%10I64d and
%12I64d (or
I64u instead
I64d), as
this post recommends, or also
this one. Good luck with BozoChess project!
Sorry for going a little off-topic: when do you expect the first draft 12 record of Perft(13) count? In the case that the first draft 12 record is for 1.-a3, I hope that it will match with 54,239,338,583,061,004 (given by Paul Byrne six weeks ago). Thanks in advance.
Regards from Spain.
Ajedrecista.