Just another chess engine made for fun as a way to learn C++. Beef is strong enough to beat any human player, but has a long way to go in the computer chess scene. Beef's search routine was initially created by synthesizing the ideas and implementations found in the engines listed below, but has, and will continue to, diversify through the addition of my own ideas.
v0.2.2: 2982 FastGM 60+0.6
Beef implements many features found in popular modern engines, built around an original legal-move-only move generation scheme which aims to make search as fast as possible — using this design, the startpos perft speed at one point reached 385 mnps (1 CPU, no hash)! Therefore, Beef mainly hopes to achieve its playing strength from search speed.
The size of the hash table in MB.
Clear the Hash table.
The number of CPU threads to use — the more the better. Note that due to the properties of the Lazy SMP method, which is used in Beef to implement parallel search, the time-to-depth may slow down even as the nodes per second speeds up. Using a greater hash table allocation is advised when running multiple threads.
The minimum amount of time in milliseconds that Beef will always leave on the clock while playing. Used to mitigate GUI lag.
This option is here only to inform GUIs that Beef supports pondering. Whether toggled on or off, Beef will respond to go ponder
and ponderhit
commands.
The directory of a Polyglot book that Beef can use for openings.
When set to true, Beef will always select the best move from its book; when false, better moves are preferred but not guaranteed for variety.
The maximum depth in half-moves that the Polyglot book may be used for in games.
The directory in which the DTZ and WDL files for endgame tablebases is stored.
The minimum depth at which Beef will be permitted to probe the tablebase. Slower machines may need to increase this from the default of 0.
Set to true to stop Beef from immediately returning tablebase moves when analyzing.
Beef would not be possible without the authors of these excellent chess projects: