Cfish 8 121516 for the macOS

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Cfish 8 121516 for the macOS

Post by MikeB »

December 2016 Release of a forked Cfish (C version of Stockfish) by Ronald De Man with the UCI Ladder Options

Source and macOS exe : https://github.com/MichaelB7/Cfish/rele ... /v8-121516

For macOS, Cfish is the "fastest" Stockfish.

Code: Select all

"Ladder" is a UCI option to weaken the play of Cfish to human levels by reducing the number of  nodes (positions) Cfish sees while keeping the full strength evaluation and search functions.  At the lowest Ladder Level Rating of 1200, Cfish will play a move after searching ~ 64 nodes.  For every increase in a Ladder Level rating , it will slowly increase the nodes by about 0.7%, so that for every 100 rating point increase in the Ladder Level, it will see double the number of nodes.  At 1200, it will see ~ 64 nodes, at Ladder level 1300 it will see  about ~ 128 nodes, and so forth, so that at Ladder level 1600 it will see about 1024 nodes and at 2600 Ladder Level Rating it will see ~ 1 million nodes.   The highest is level is 2800 and it will see  ~ 4 million positions per move at a level control permitting sufficient time.  This would be about 2 seconds on my machine

"Ladder Range" will enable Cfish to play within a variable range selected at random from move to move.  A 100 to 250 Ladder Level point range is the recommended range.  but you may set that range as high you like based on your preference. Using the Ladder Range will increase variability in Cfish's play 

"Ladder Delay"  implements a non-busy sleep function that will for Cfish to use the optimum time for the  time control selected.  Ladder Level provides the user with about 1400 levels.  The idea is that the user get comfortable playing and winning at a certain level, the user can slowly increment the strength at a 10, 25 or 50 rating point increments - and climb the ladder
Happy Ladder Climbing :D
Last edited by MikeB on Fri Dec 16, 2016 2:16 am, edited 1 time in total.
royb
Posts: 536
Joined: Thu Mar 09, 2006 12:53 am

Re: Cfish 8 121516 for the MacOS

Post by royb »

I wish to commend you for the implementation of the ladder idea. It is a much needed attempt to make engines playable for us humans. And the idea of having a range that the engine will work within makes the game feel much more "normal" to this patzer (some moves are a bit stronger than others; that variability is what feels more normal to me).

Thank you so much for your efforts!!
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Cfish 8 121516 for the MacOS

Post by MikeB »

royb wrote:I wish to commend you for the implementation of the ladder idea. It is a much needed attempt to make engines playable for us humans. And the idea of having a range that the engine will work within makes the game feel much more "normal" to this patzer (some moves are a bit stronger than others; that variability is what feels more normal to me).

Thank you so much for your efforts!!
Thanks Roy, appreciate the feedback. Stay tuned, more is coming...
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Cfish 8 121516 for the macOS

Post by syzygy »

MikeB wrote:December 2016 Release of a forked Cfish (C version of Stockfish) by Ronald De Man with the UCI Ladder Options
If you fork it, then release it under a different name...
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Cfish 8 121516 for the macOS

Post by hgm »

It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
royb
Posts: 536
Joined: Thu Mar 09, 2006 12:53 am

Re: Cfish 8 121516 for the macOS

Post by royb »

hgm wrote:It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
A key difference in my opinion is that the research was done to know that it was 64 nodes evaluated that equated to 1200 ELO. And 128 nodes was equivalent to 1300 ELO, etc. That makes the whole thing so much more friendly/relatable to the average person.
kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: Cfish 8 121516 for the macOS

Post by kinderchocolate »

Thanks for the update. But in your code, you can just do:

2^((x-1200)/100) * 64

where x is the rating you want. The code you have lead to floating errors.
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Cfish 8 121516 for the macOS

Post by MikeB »

syzygy wrote:
MikeB wrote:December 2016 Release of a forked Cfish (C version of Stockfish) by Ronald De Man with the UCI Ladder Options
If you fork it, then release it under a different name...
Will do
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Cfish 8 121516 for the macOS

Post by MikeB »

kinderchocolate wrote:Thanks for the update. But in your code, you can just do:

2^((x-1200)/100) * 64

where x is the rating you want. The code you have lead to floating errors.
+1 look for a re-release under a new name soon -headed to work now
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Cfish 8 121516 for the macOS

Post by MikeB »

hgm wrote:It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
You are not thinking through all the ramifications of what this does :
Simpler and more intuitive (using the GUI and ratings is something eveynody understands - the top commerical GUIs - Shredder, Fritz, Hiarcs - have this,so this is functionally that you must obviously under appreciate or you would have added it already - so I'm just filling a gap here between your GUI and the engine
Ability to randomize go nodes between x and y
Ability to change it without reloading the engine
Ability to delay the response so it's not instaneous

None of these features are available through the protocol so your argument that this is counter productive is without merit and displays a lack of understanding of desired features.