I have published my chess960 engine in the wild:
Source code:
https://github.com/SamuraiDangyo/Sapeli
There's 1 binary. But you should be able to build better binaries with make - program.
Possibly testing different flags.
First thing to do is run: sapeli -id
Video Sapeli vs fairymax:
https://www.youtube.com/watch?v=zGUUWj-vJRQ
About Sapeli.
This program was written back in 2016.
Then it reached the point I wanted.
A week ago I thought I lost my old code.
My memory stick died.
Luckily I found my backups.
I cleaned up Sapeli's code and published it.
Sapeli is still rather a perft counter with chess engine.
Than a chess engine with perft counter.
I liked doing this perft stuff.
I used to play myself against fairymax quite a lot.
And thought it would be great to write a program that could play and possibly beat fairymax.
I have no idea of strength. All I know Sapeli beats fairymax.
These are 1 second games:
# Score of Sapeli 1.0 vs Fairy-Max 4.8V: 76 - 14 - 10 [0.81] 100
# Score of Sapeli 1.0 vs Fairy-Max 4.8V: 721 - 193 - 86 [0.76] 1000
In 1 minute games Sapeli beats fairymax also.
About strength.
I have no plans to make a Stockfish clone.
I have wasted too much time with chess programming.
So from now on I'm only improving code quality and fixing bugs.
But if you want to improve Sapeli's strength then go ahead!
Sapeli 1.0 - New chess engine
Moderators: hgm, Rebel, chrisw
-
- Posts: 491
- Joined: Sat Mar 02, 2013 11:31 pm
-
- Posts: 640
- Joined: Sat Jun 08, 2013 10:07 am
- Location: France
- Full name: Roland Chastain
Re: Sapeli 1.0 - New chess engine
Hello!
Congratulations for beating Fairy-Max.
I tried to build the engine under Windows, with different compilers, but it seems that some parts of the code are not portable.
I wonder if it would be easy to make a Windows compatible version.
Congratulations for beating Fairy-Max.
I tried to build the engine under Windows, with different compilers, but it seems that some parts of the code are not portable.
I wonder if it would be easy to make a Windows compatible version.
Qui trop embrasse mal étreint.
-
- Posts: 491
- Joined: Sat Mar 02, 2013 11:31 pm
Re: Sapeli 1.0 - New chess engine
Thanks!
I forgot to mention I have only tested on Linux.
I don't have any Windows or MacOS machines to test with.
In Sapeli there's not much Linux specific stuff.
Propably:?
But somebody with experience porting Linux stuff to Windows knows better.
Sapeli beats Fairy-Max in all time controls. As far as I can tell.
Sometimes Fairy-Max runs out of time. Its qsearch explodes. ( As far as I know Sapeli never runs out time. )
And sometimes Fairy-Max even crashes.
But it's a great opponent for Sapeli.
I forgot to mention since Fairy-Max can't play chess960 I tested against Stockfish -> "make gamestockfish".
In 300ms games Sapeli is able to hang on w/ 50% score.
In longer games of course no change.
But ultimate strength was never the goal.
I forgot to mention I have only tested on Linux.
I don't have any Windows or MacOS machines to test with.
In Sapeli there's not much Linux specific stuff.
Propably:
Code: Select all
static char Input_available()
But somebody with experience porting Linux stuff to Windows knows better.
Sapeli beats Fairy-Max in all time controls. As far as I can tell.
Sometimes Fairy-Max runs out of time. Its qsearch explodes. ( As far as I know Sapeli never runs out time. )
And sometimes Fairy-Max even crashes.
But it's a great opponent for Sapeli.
I forgot to mention since Fairy-Max can't play chess960 I tested against Stockfish -> "make gamestockfish".
In 300ms games Sapeli is able to hang on w/ 50% score.
In longer games of course no change.
But ultimate strength was never the goal.
-
- Posts: 640
- Joined: Sat Jun 08, 2013 10:07 am
- Location: France
- Full name: Roland Chastain
Re: Sapeli 1.0 - New chess engine
Here is the error I get with MinGW-GCC.
Code: Select all
Sapeli.c: In function 'Input_available':
Sapeli.c:2251:2: error: unknown type name 'fd_set'
fd_set a;
Qui trop embrasse mal étreint.
-
- Posts: 1296
- Joined: Sun Mar 12, 2006 6:46 pm
- Location: Kelowna
- Full name: Tony Mokonen
Re: Sapeli 1.0 - New chess engine
It compiles cleanly under Cygwin. I have uploaded 32 and 64 bit compiles here:
http://tonyschess.x10host.com/Sapeli1.0.rar
http://tonyschess.x10host.com/Sapeli1.0.rar
-
- Posts: 1362
- Joined: Sat Jul 21, 2018 7:43 am
- Location: Szentendre, Hungary
- Full name: Gabor Szots
Re: Sapeli 1.0 - New chess engine
Thanks, Tony. 64-bit O3 (which is about twice as fast as O2) seems to run OK here.tmokonen wrote: ↑Sat Apr 20, 2019 6:52 pm It compiles cleanly under Cygwin. I have uploaded 32 and 64 bit compiles here:
http://tonyschess.x10host.com/Sapeli1.0.rar
Gabor Szots
CCRL testing group
CCRL testing group
-
- Posts: 1296
- Joined: Sun Mar 12, 2006 6:46 pm
- Location: Kelowna
- Full name: Tony Mokonen
Re: Sapeli 1.0 - New chess engine
The O2 and O3 are different levels of optimization. The O3 compiles should be faster, but I can't guarantee that on all hardware. The O3 compile is faster on my hardware, but only 20% faster or so.Gabor Szots wrote: ↑Sat Apr 20, 2019 7:33 pmThanks, Tony. 64-bit O3 (which is about twice as fast as O2) seems to run OK here.tmokonen wrote: ↑Sat Apr 20, 2019 6:52 pm It compiles cleanly under Cygwin. I have uploaded 32 and 64 bit compiles here:
http://tonyschess.x10host.com/Sapeli1.0.rar
-
- Posts: 491
- Joined: Sat Mar 02, 2013 11:31 pm
Re: Sapeli 1.0 - New chess engine
Nice. Thanks all.
I added some compile with -DWINDOWS_BUILD flag or use "make windowsbuild".
https://github.com/SamuraiDangyo/Sapeli ... li.c#L2261
It probably won't work so I will take it off in future.
But if it works it can stay.
I tested some optimization levels:
make suite5
No optimization: nodes 24037116 mnps 8.668 time 2.773
O1: nodes 24037116 mnps 19.849 time 1.211
O2: nodes 24037116 mnps 20.704 time 1.161
O3: nodes 24037116 mnps 20.686 time 1.162
The big suite: make suite7
# nodes 23772192204 mnps 16.219 time 1465.738
But these vary on different machines.
-bench is propably better benchmark anyway.
-suite is just perft numbers.
Small fixes. Upgraded to 1.01 version.
Sapeli is pretty fast.
It's getting 5 mnps while Fairy-Max 5.0 is getting 1.1 mnps on my machine.
I added some
Code: Select all
_kbhit()
https://github.com/SamuraiDangyo/Sapeli ... li.c#L2261
It probably won't work so I will take it off in future.
But if it works it can stay.
I tested some optimization levels:
make suite5
No optimization: nodes 24037116 mnps 8.668 time 2.773
O1: nodes 24037116 mnps 19.849 time 1.211
O2: nodes 24037116 mnps 20.704 time 1.161
O3: nodes 24037116 mnps 20.686 time 1.162
The big suite: make suite7
# nodes 23772192204 mnps 16.219 time 1465.738
But these vary on different machines.
-bench is propably better benchmark anyway.
-suite is just perft numbers.
Small fixes. Upgraded to 1.01 version.
Sapeli is pretty fast.
It's getting 5 mnps while Fairy-Max 5.0 is getting 1.1 mnps on my machine.
-
- Posts: 24
- Joined: Mon Dec 17, 2018 3:33 am
- Full name: Jase de Lace
Re: Sapeli 1.0 - New chess engine
Hi JohnWoe,
I only had to change one line to be able to compile on MacOS.
Sapeli.c, Line 2250: #ifdef _WIN32
Otherwise works great. Nice work!
I only had to change one line to be able to compile on MacOS.
Sapeli.c, Line 2250: #ifdef _WIN32
Otherwise works great. Nice work!
-
- Posts: 491
- Joined: Sat Mar 02, 2013 11:31 pm
Re: Sapeli 1.0 - New chess engine
Thanks for testing!
I updated this. It was very little code for Windows/MacOS machines. Which is great.
https://github.com/SamuraiDangyo/Sapeli ... li.c#L2266
I have been making only fixes no functional changes.
I updated this. It was very little code for Windows/MacOS machines. Which is great.
Code: Select all
#if defined(WINDOWS_BUILD) || defined(_WIN32) || defined(_WIN64)
I have been making only fixes no functional changes.