Floyd 0.9 released

General discussion about computer chess...

Floyd 0.9 released

Postby marcelk » Sat Aug 20, 2016 11:28 am

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
User avatar
marcelk
 
Posts: 51
Joined: Fri Jan 28, 2011 10:27 pm

Re: Floyd 0.9 released

Postby gsgs » Sun Oct 09, 2016 7:08 am

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
gsgs
 
Posts: 49
Joined: Sun Aug 14, 2016 6:00 pm

Re: Floyd 0.9 released

Postby gsgs » Sun Oct 09, 2016 7:29 am

[ "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)

gsgs
 
Posts: 49
Joined: Sun Aug 14, 2016 6:00 pm

Re: Floyd 0.9 released

Postby marcelk » Sat Oct 15, 2016 10:36 am

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
User avatar
marcelk
 
Posts: 51
Joined: Fri Jan 28, 2011 10:27 pm


Return to General Topics

Who is online

Users browsing this forum: No registered users and 1 guest

cron