Skip to content

ecrucru/toledo-uci

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

Toledo NanoChess UCI

Toledo NanoChess is originally a killer chess engine because it is the smallest one in the world ! The quality of the code within so few bytes is totally incredible.

This UCI version is a derivative work of the library Toledo NanoChess released in 2013 for JavaScript. It has some benefits :

  • Play with a desktop application through the modern UCI protocol.
  • Undo the last move without losing your game.
  • With pyChess' slider, select the strength of the AI when you start a new game (6 is a good value).
  • Toledo plays both White and Black.
  • Play Chess960 with unsupported castling.
  • Information about the analysis : processing time, nodes, nodes per second...

Despite it was coded and tested in just three days, this UCI port doesn't aim to be the smallest one in the world... ;-)

Install

First, install NodeJS.org which is the host application to run the script.

For pyChess, just add toledo-uci.js to the list of engines.

For WinBoard, add this new line in the engine list :

"Toledo NanoChess UCI" -fcp 'C:\full-path-to\node.exe "C:\full-path-to\toledo-uci.js"' -fn "Toledo NanoChess UCI" -fUCI

For the command line, execute node toledo-uci.js.

License

Refer to the header of the main JavaScript file to know more about the license.

Supported commands

  • uci
  • setoption name Skill Level value (number) where (number) is a level between 1 and 20
  • isready
  • ucinewgame
  • position startpos
  • position startpos moves (string) with as many moves written in UCI format (like e2e3) as needed
  • position fen (string) where (string) is a complete position in FEN format
  • position fen (string) moves (string)
  • debug displays Toledo NanoChess' internal variables
  • debug move (string) where (string) is a move to perform written in UCI format (like a2a1q)
  • debug board displays the internal board
  • debug quality executes the automated quality check
  • go
  • go depth (number) where (number) is the forced depth to reach (it temporarily overrides the current strength of the AI)
  • quit

Any other command is unsupported (like stop) or partially ignored (like go infinite).