Floyd is a simple, bare-bones, chess engine for study purposes. It is designed for Windows, Linux and OSX and distributed under the permissive, "2-clause" or "simplified", open source BSD license.
The Floyd project is primarily intended as a platform for experimentation. This means that emphasis is on ease of change, clarity, soundness and preferably a very low code count. There are now only about 4,000 lines of real code. Raw search speed is of a lesser importance. Still most, if not all, modern evaluation and search techniques are present in their basic form and therefore Floyd can play very strong chess.
Executables: https://marcelk.net/floyd/
Sources: https://github.com/kervinck/floyd
Main changes:
- Gained approximately 180 elo at fast time controls
- Better handling of zugzwang positions
- Fixed illegal moves deep in PV (reported by Dirk-Jan D.)
- Full solution for the "0readyok" problem: also don't split info lines
- Able to abort search in Python module (e.g. by Ctrl-C)
Under the hood:
- Added history counters for move ordering
- Improved move ordering for killers
- Improved null move pruning/reductions (aka verification)
- Added delta pruning
- Added hanging piece evaluation
- Added basic futility pruning, razoring and stand pat pruning
- Some minor evaluation weight tuning
- Simplified UCI move printing
- Eliminated spurious "Illegal move" in debug mode
Floyd 0.9 released
Re: Floyd 0.9 released
download from github somehow failed
Elo = at CCRL ~2750 (4 CPU) ;
[to compare: senpai.cpp is one file , 140K source,Elo3035
Cfish is 400K in 60files, Elo 3340
micro-max is 2K, Elo 2050)
TSCP is 50K, Elo 1800 ]
22 files in the source directory (I'll open and copy them 1by1)
Board.h
Engine.h
cplus.c
cplus.h
engine.c
evaluate.c
floydmain.c
floydmodule.c
format.c
geometry.h
kpk.c
kpk.h
moves.c
parse.c
search.c
test.c
ttable.c
uci.c
uci.h
vector.h
zobrist.c
zobrist.h
Elo = at CCRL ~2750 (4 CPU) ;
[to compare: senpai.cpp is one file , 140K source,Elo3035
Cfish is 400K in 60files, Elo 3340
micro-max is 2K, Elo 2050)
TSCP is 50K, Elo 1800 ]
22 files in the source directory (I'll open and copy them 1by1)
Board.h
Engine.h
cplus.c
cplus.h
engine.c
evaluate.c
floydmain.c
floydmodule.c
format.c
geometry.h
kpk.c
kpk.h
moves.c
parse.c
search.c
test.c
ttable.c
uci.c
uci.h
vector.h
zobrist.c
zobrist.h
Re: Floyd 0.9 released
[ "You can no longer edit or delete that post." ]
Code: Select all
247 , 7070 ,Board.h
175 , 5270 ,Engine.h
463 , 13400 ,cplus.c
205 , 7130 ,cplus.h
58 , 1840 ,engine.c
1225 , 56200 ,evaluate.c
63 , 2040 ,floydmain.c
268 , 9220 ,floydmodule.c
159 , 5580 ,format.c
25 , 660 ,geometry.h
196 , 8620 ,kpk.c
41 , 1470 ,kpk.h
888 , 36400 ,moves.c
264 , 9210 ,parse.c
733 , 31100 ,search.c
153 , 6600 ,test.c
252 , 9130 ,ttable.c
433 , 18500 ,uci.c
9 , 160 ,uci.h
813 , 23700 ,vector.h
249 , 22100 ,zobrist.c
11 , 240 ,zobrist.h
------------------------------------
6930 , 275640
lines , bytes (including comments)
Re: Floyd 0.9 released
Easiest is to look in Docs/fingerprint:
This includes >200 lines for the Polyglot hash constants in zobrist.c. These are a bit unnecessary, but for the time being I like to stick to that standard.
Martin Sedlak's code counting tool is here: http://talkchess.com/forum/viewtopic.php?p=622621
Code: Select all
CountLoc v1.6.2, (c) 2015 mar
-------------------------------------------------------------------------------
Type Files Blank Comment Punctuation Code
-------------------------------------------------------------------------------
C source 14 819 950 457 3115
C/C++ header 8 258 319 24 914
-------------------------------------------------------------------------------
Total 22 1077 1269 481 4029
Martin Sedlak's code counting tool is here: http://talkchess.com/forum/viewtopic.php?p=622621