Coder Social home page Coder Social logo

amchess / shashchess Goto Github PK

View Code? Open in Web Editor NEW
128.0 128.0 28.0 313.86 MB

A try to implement Alexander Shashin's theory on a Stockfish's derived chess engine

License: GNU General Public License v3.0

Makefile 6.23% C++ 59.25% Batchfile 0.33% Shell 1.07% C 33.12%

shashchess's People

Contributors

amchess avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shashchess's Issues

Problems to get ShashChess27.1, MXLinux

Hello,

keos@kaos:~/Downloads
cd ShashChess-27.1
keos@kaos:~/Downloads/ShashChess-27.1
$ cd src
keos@kaos:~/Downloads/ShashChess-27.1/src
$ make help
make: *** There is no rule to build the 'help' target.  Stop.
keos@kaos:~/Downloads/ShashChess-27.1/src
$ make net
make: *** There is no rule to build the target 'net'.  Stop.
keos@kaos:~/Downloads/ShashChess-27.1/src
$

The executors do not work either, i tried all the options,
https://github.com/amchess/ShashChess/releases/tag/27.1

I will like to add that before I had installed this chess engine in version 16 without any problems.

*MXLinux operating system.

Thank you for any suggestions.

Error by compiling MacOS

Intel Mac, Catalina 10.15.7

use this command
make profile-build ARCH=x86-64-bmi2 COMP=clang
strip shashchess
mv 'shashchess' 'ShashChess17-x86-64-bmi2'
make clean

Get one Error:
ld: library not found for -lws2_32
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [shashchess] Error 1
make: *** [build] Error 2

=> file not build

Get also four warnings

montecarlo.cpp:68:14: warning: unused variable 'REWARD_MATE' [-Wunused-const-variable]
const Reward REWARD_MATE = Reward(1.0);
^
In file included from montecarlo.cpp:30:
./montecarlo.h:110:10: warning: private field 'max_epsilon' is not used [-Wunused-private-field]
double max_epsilon = 0.99;
^
./montecarlo.h:111:10: warning: private field 'min_epsilon' is not used [-Wunused-private-field]
double min_epsilon = 0.00;
^
./montecarlo.h:112:10: warning: private field 'decay_rate' is not used [-Wunused-private-field]
double decay_rate = 0.8;
^
4 warnings generated.

Suggestion and Question

Hey @amchess ,
I have a suggestion for you is that you update ShashChess and BrainLearn once/twice per month
If you are ok , go with it
If you just wanna align both with OFFICIAL Stockfish release why ? Since updating the engine every month makes it cooler

Trying to compile program

Hello, I have imported the code into Visual Studio and am trying to run the program. Which file do I run? Is it one of the Makefiles? I always get an error "Please select a valid startup item". Do I need to create a project first?

I apologize for my extremely basic questions as I don't have a strong background in coding. Am attempting to explore the applications of Shashin's methods to over the board thinking as I am a big fan of his book.

Thanks, Daren

Mac Version doesn't work

None of my Chess interfaces -- HIARCS, ScidvsMac, or Nibbler -- recognize it as a UCI engine.

Mac OS Catalina 10.15.3 doesn't recognize "shashchess-16" as a Unix executable.

termux?

I don't know how to make it work with termux, the path to ndk could be more concise using the ndk from the msys environment variable, as is done in stockfish, I need help.

Output Parameters

What would really help is a "Verbose" option that displays the value ratios of Mobility, Material, Space, Compactness, KP density, King Safety and the preferred algorithm T, C, P, TC,CP or TCP at every move. That is the real value added as we would know how this engine "thinks". Without it, its just another engine in a black box.

Just a quick test...

./c-chess-cli -each tc=10+0.2 option.Hash=8 option.Threads=1 depth=16 -engine cmd=stockfish nodes=200000 -engine cmd=ShashChess32-x86-64-modern nodes=200000 -games 100 -concurrency 4

Score of Stockfish dev-20230507-65e21505 vs ShashChess 32: 26 - 6 - 68 [0.600] 100

Add ARMv9.2, SVE2 support

Describe the issue

It's not possible to compile with ARMv9.2, SVE2 support.

Expected behavior

ARMv9.2, SVE2 should be used instead of old ARMv8.

Steps to reproduce

Compile.

Anything else?

No response

Operating system

Android

ShashChess version

ShashChess 35

List of dependencies to compile in Linux?

I'm trying to compile ShashChess in a Linux machine, and the lack of info on dependencies is making it a bit harder than it should be.

I solved the first issue by installing libcurl4-gnutls-dev, but now I get a new one ("/usr/bin/ld: cannot find -lws2_32").

So maybe it'd be a good idea to add library dependencies to the README file.

No checkbox for turning off 50-move draw rule in TB endings:

Stockfish has a setting quite valuable to ICCF players: Uncheck 50-move draw rule in endgame TB's. ICCF removed such draw rules so the endgame TB can force checkmates that would normally have violated this outdated OTB rule.

I was looking for this same checkbox in ShashChess, and couldn't find it.

ShashChess, SugarNN etc playing Chess Variants

Hi
Is it possible to make ShashChess, SugarNN play Chess Variants?
A Musketeer Chess Tournament will be held in the coming few months with interesting incentives.
See http://talkchess.com/forum3/viewtopic.php?f=7&t=72572 and also interesting discussions on Musketeer-Stockfish ianfab/Musketeer-Stockfish#3
The rules are easily found on www.musketeerchess.net or https://github.com/fsmosca/musketeer-chess
please feel free to email me at musketeerchess (a) gmail.vom
Thanks

Updation

Any plans to update ShashChess and Brainlearn to the latest SF architecture? I am curious to see how it performs with it!

Experience Files not merging

Hi,
What would be the names of the experience files to merge them?
I currently have experience.bin and experience1.bin. With this when I load the engine in Chessbase it doesn't merge the experiences. What is the solution? Thanks!

Android

How to build for Android uaing mingw/msys2?

Compile problems on 32 bit ARMv7 Raspberry Pi 4

Hi,

When I try to compile your Engine I get this error:

search.cpp:44:10: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>
^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [: search.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/Al/Engine-Source/shashChess/src/All'
make[1]: *** [Makefile:893: gcc-profile-make] Error 2
make[1]: Leaving directory '/home/Al/Engine-Source/shashChess/src/All'
make: *** [Makefile:751: profile-build] Error 2
Al@RPi4-SSD:~/Engine-Source/shashChess/src/All $

What I can I do to avoid this error?

Thanks,

Al.

Update

Won't you update ShashChess???????

Error compiling v19.1 for Mac

some warnings and error on this version. Last version (18.2) was good.
Enviroment on Mac should be clean. Stockfish (last dev) and corchess (last dev, 25.10.) compiles without any warnings and error.

Log:
montecarlo.cpp:68:14: warning: unused variable 'REWARD_MATE' [-Wunused-const-variable]
const Reward REWARD_MATE = Reward(1.0);
^
In file included from montecarlo.cpp:30:
./montecarlo.h:110:10: warning: private field 'max_epsilon' is not used [-Wunused-private-field]
double max_epsilon = 0.99;
^
./montecarlo.h:111:10: warning: private field 'min_epsilon' is not used [-Wunused-private-field]
double min_epsilon = 0.00;
^
./montecarlo.h:112:10: warning: private field 'decay_rate' is not used [-Wunused-private-field]
double decay_rate = 0.8;

clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [shashchess] Error 1
make: *** [build] Error 2

Random zobrist-keys

I stumbled across this SF-Fork and am i kinda interested in why you wrote down all the random zobrist keys by hand? I mean it must have been proven to be better than a simple call to some random function inside a loop. Do you have any proof for that? It's really interesting since I was also thinking about some better way to distribute the zobrist keys to reduce collisions-

Multiple issues in test suite

https://github.com/amchess/ShashChess/blob/master/tests/HardPositions/HardPositions2022.epd
The entire test suite needs to be revised, there are:

Does not work without -DUSE_LIVEBOOK

Without -DUSE_LIVEBOOK an error message occurs.

search.cpp: In member function 'virtual void Stockfish::MainThread::search()':
search.cpp:770:20: error: qualified-id in declaration before '(' token
  770 | void Thread::search() {
      |                    ^

MCTS Developing

Hello!
First, congrats! You did a great job with ShashChess. This is the greatest chess engine I had ever see.
But you can improve it. The MCTS mode is not good enough. It is giving wrong evaluation because of wrong variants (Generally it sees wrong sacrifices.)
Also, I want you to look the Scorpio Chess Engine (https://github.com/dshawul/Scorpio) 's MCTS for improve ShashChess's MCTS.
Except these, ShashChess is a super chess engine..
Thank you..

Shashchess 14 :- Linux

Hello,

When will you upload the Linux version for Shashchess 14? Thanks for such engines :) Very grateful. Also i am not able to run ShashChess 13.2. Not sure what the problem is, but when i run with pychess, it says failed to run engine.

How to activate Monte Carlo

Hi,
Since Version 15, it was said Monte Carlo was added.
But in ChessBase interface (Fritz), when selecting the Monte Carlo analysis, it says the Engine doesn't support it.
Is that normal?

thanks

Full depth threads

Hello I have 8 regular threads, so I was wondering what the optimal number of full depth threads I would need

Evaluation Multiplier

When I compare the numerical evaluations of ShashChess with two other strong engines (when the same move is chosen) I typically find something like this: Stockfish is 3x, while Dragon is 2x, that of ShashChess. This makes ShashChess difficult to integrate with other analyses. So, would it be possible to have a multiplier option in ShashChess? In my own experiments, multiplying its (non-zero) evaluations by 1.8 would make it more realistic and usable, but of course that decision could be left to the user. Perhaps you might want to set a maximum of 3. Of course 1 would leave ShashChess as it is now.

Latest Eval file Loading Issue. Engine Crash

I got a problem with the ShashChess 34.6 as i am not able to load in newer eval files. The newest eval file that will load up without crashing the engine is nn-5af11540bbfe.nnue which was released quite a few months ago. I tested almost all eval files that is newer than the one i listed above and all of them failed to load crashing the engine. The following below was captured as an "informational" item listed in eventviewer. Not sure if the below error log will help you or not but its posted below.

Fault bucket 1782316213243264143, type 5
Event Name: RADAR_PRE_LEAK_64
Response: Not available
Cab Id: 0

Problem signature:
P1: ShashChess34.6-x86-64-avx2.exe
P2: 0.0.0.0
P3: 10.0.19045.2.0.0
P4:
P5:
P6:
P7:
P8:
P9:
P10:

Attached files:
\?\C:\Users\dude\AppData\Local\Temp\RDR4A2C.tmp\empty.txt
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4A4D.tmp.WERInternalMetadata.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4A5D.tmp.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4A5F.tmp.csv
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4A8F.tmp.txt

These files may be available here:

Analysis symbol:
Rechecking for solution: 0
Report Id: a261876e-87a3-432c-ac5e-e8ea8927ef2f
Report Status: 268435456
Hashed bucket: d9049aec94e5f45478bc0f271fc8bc8f
Cab Guid: 0

About removal of classical evaluation

Bad idea of the community: removal of the classical evaluation function.
It is indeed true that it is less strong than nnue, but, in reference to a human being,
-it is definitely, better
-is exploitable to adapt it to his level of play, since its elements are mappable to those found in traditional strategy books.
Basically, comparing classic Stockfish with nnue, you can see how far a human being can go and where the "inhuman" takes over.
Now, this genius makes that impossible.
This shows that the community members only care about pure game power, moreover, essentially, at ultra-rapid times.
This is of no help to the OTB player, indeed detrimental.
nnue evaluation function is a blackbox.
As such, you can't act on it: you can think of it as a linear combination of thousands of factors and relative weights both unknown.
In contrast, the classical evaluation function, certainly less strong, but better than any human being, has a dozen that can be mapped exactly to the thinking system of a human being.
Thus, such factors can be turned on or off as needed.
What we do and will continue to do with ShashChess with a REAL HANDICAP MODE simulating a human player.
What sense does it make for a human being to play the moves of an entity that often violates the strategic principles it already knows? Instead, the comparison with the classical evaluation function allows him to penetrate the meanders of nnue.
So instead the computer speaks Arabic even for Carlsen.
Research is meaningless unless it makes people's lives better: pure hypertrophic ego.
Now, the evaluation function is not at all dependent on the classical evaluation function.
Up to there, I'm all for it, but why remove it as an additional option?
The current stockfish handicap mode is ridiculous: random errors the more frequent the lower the elo.
Instead, a real handicap mode should simulate the thinking system of a certain elo range, which is impossible now for Stockfish.

Originally in official-stockfish/Stockfish@af110e0#commitcomment-121631059

@amchess I appreciate this content. I shared it in mcostalba/Stockfish#324. Can you also share your opinion there?

Thank you very much

Self-Learning

Hello.
I think ShashChess doesn't save every move in NN Persisted Self Learning Mode. I think it just saves opening moves and game ending moves. Can you do a version for saving every move?
Thank you.

Less Pruning Mode bug

In less pruning mode(3), I have analyzed one of the AlphaZero's matches. I had opened NN persisted Self Learning mode but it didn't remembered the move.( I was analyzed that move for 1 hours)
Is it a problem in my computer, or it really bugs?

Question to shashchess author

If a patch passes the 10-games 25 min + 10 second test and the test suite, however it fails the short time control SPRT in stockfish, will it be merged (considering shashchess author prioritises longer time controls?)

Feature: Command to "count" all piece moves, and delta(move)

I am trying to study the book which presumably you folks have already done.

Although embarrassed to admit it, I'm still making mistakes counting and want to practice with a tool that will give me immediate feedback.

Anything out there like this for Coach Shashin's parameters?

Also: Anyone have contact info for Alexander Shashin?

I'd like to pursue (online) lessons with him.

He's still listed as a coach with GMChess.com (aka GrandMaster Chess, but non one seems to be answering their contact email and many of their internal site links are dead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.