Page 1 of 1

Floyd 0.9 released

Posted: Sat Aug 20, 2016 11:28 am
by marcelk
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

Re: Floyd 0.9 released

Posted: Sun Oct 09, 2016 7:08 am
by gsgs
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

Re: Floyd 0.9 released

Posted: Sun Oct 09, 2016 7:29 am
by gsgs
[ "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

Posted: Sat Oct 15, 2016 10:36 am
by marcelk
Easiest is to look in Docs/fingerprint:

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
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