Gentelmen, check your engines.

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Gentelmen, check your engines.

Post by mvanthoor »

My engine finds nothing. There are at least two errors in the given FEN-string. It is missing the EP and castling rights, and when I add them, my engine reports an error with regard to the square and piece part.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: Gentelmen, check your engines.

Post by dangi12012 »

Well enumerating all positions does not give me any information if it contains a forced checkmate:
Depth: 7 - 3R1R2/K3k3/1p1nPb2/pN2P2N/nP1ppp2/4P3/6P1/4Qq1r w 0 1
Perft 1: 41 0ms 2.92857 MNodes/s
Perft 2: 1247 0ms 26.5319 MNodes/s
Perft 3: 49329 0ms 465.368 MNodes/s
Perft 4: 1555103 1ms 1263.28 MNodes/s
Perft 5: 62391367 33ms 1847.98 MNodes/s
Perft 6: 2005994595 1293ms 1551.04 MNodes/s
Perft 7: 80893669123 42991ms 1881.62 MNodes/s

forum3/viewtopic.php?f=7&t=78230
How would I implement a checkmate search?
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
BrokenKeyboard
Posts: 24
Joined: Tue Mar 16, 2021 11:11 pm
Full name: Het Satasiya

Re: Gentelmen, check your engines.

Post by BrokenKeyboard »

You would go about doing that by implementing a basic minimax engine that returns the evaluation along with the depth the evaluation came from. Due to the way minimax works it forces both players to play optimally. To make it faster, use safe pruning methods such as alpha-beta, and then use a hashtable as well. The CPW has all the info you would need. You have the board representation, so go on and make a search and basic material evaluation. (White pieces values - black pieces values). When that's > 0, then white is "winning" , < 0 gets you black is winning.