Software Engineer.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
This is an out-of-context picture of my cat, just because.
UCI Chess Engine in the 2100-2200 ELO range.
License: GNU General Public License v3.0
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.1"]
[White "Minic 3.19"]
[Black "MORA"]
[Result "1-0"]
[PlyCount "135"]
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.8"]
[White "MORA"]
[Black "Minic 3.19"]
[Result "1-0"]
[PlyCount "119"]
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.2"]
[White "MORA"]
[Black "Minic 3.19"]
[Result "0-1"]
[PlyCount "160"]
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.3"]
[White "Minic 3.19"]
[Black "MORA"]
[Result "1-0"]
[PlyCount "155"]
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.6"]
[White "MORA"]
[Black "Minic 3.19"]
[Result "0-1"]
[PlyCount "40"]
[Event "?"]
[Site "?"]
[Date "2022.05.23"]
[Round "1.10"]
[White "MORA"]
[Black "Minic 3.19"]
[Result "0-1"]
[PlyCount "200"]
The probe_hash method returns an int value representing:
The problem is that -1 could be a valid score for some positions, so in that case the search algorithm is not going to use that value because it will think the position was not found in the transposition table.
An easy fix would be to use a value outside the range of valid scores. Something better would be for the method to return a bool to indicate success and return the score changing an output parameter.
MORA-CHESS-ENGINE/Linux/src/transpositiontable.cpp
Lines 70 to 84 in f195b69
MORA-CHESS-ENGINE/Linux/src/search.cpp
Lines 171 to 174 in f195b69
While running a tournament on Windows, the engine suddenly stopped playing moves. The last info command sent to the GUI showed that the search time was a negative number (so a timeout event never happened), which is a strong indicative of an overflow.
It is a major problem on Windows because the stop command is not implemented so the program can't recover from this error.
Error conditions:
Version: MORA 1.1.0
SO: Windows 10
GUI: Arena
Time Control: 40 moves in 1 minute, repetitive
Tournament elapsed time: like 4 hours.
System time: 16:30hs
This fragment should be tested:
MORA-CHESS-ENGINE/Windows/src/timemanagement.cpp
Lines 73 to 78 in 73866b3
Hi Gonzalo,
I'm trying to use MORA and I found it crashes occasionally.
Version: MORA 1.1.0
SO: Windows 10
GUI: command line / uci
Steps to reproduce:
uci
id name MORA
id author Gonzalo Arro
option name Hash type spin default 128 min 1 max 1024
uciok
isready
readyok
ucinewgame
isready
readyok
position fen rnbqkb1r/5ppp/p2ppn2/1p6/3NP3/2N1BP2/PPP3PP/R2QKB1R w KQkq b6 0 8 moves e1f2 a6a5 d4b5 a8a7 b5a7 h7h6 a7c8 a5a4 c8b6 f8e7 f1c4 e6e5 d1d2 g7g5 c3a4 e8g8 a4c3 g5g4 f3g4 d6d5 e4d5 d8b6 e3b6 b8c6 d5c6 e7d6 d2d6 h6h5 d6f6 g8h7 f6e5 f8e8 e5e8 f7f5 e8h5 h7g7 h5f5 g7h6 c6c7 h6g7 c7c8q g7h6
go depth 2
info score cp 4969 depth 1 nodes 83 time 4 pv c3b1
Thanks,
Mauricio
PS: good job with your chess engine!!!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.