GNU/Linux >> Znalost Linux >  >> Linux

Použití univerzálního šachového rozhraní

Vytvořil jsem tuto podstatu, která je nejlepší dokumentací, kterou jsem mohl najít - většina odkazů, které jsem našel, byla mrtvá

https://gist.github.com/aliostad/f4470274f39d29b788c1b09519e67372


Předpokládejme, že GUI usnadňuje shodu mezi lidským uživatelem a enginem. Řekněme, že uživatel začíná e2e4 . Potom by příkazy vypadaly nějak takto:

// GUI: tell the engine to use the UCI protocol
uci

// ENGINE: identify  
id name Chess Engine
id author John Smith

// ENGINE: send the options that can be changed
//         in this case the hash size can have a value from 1 to 128 MB
option name Hash type spin default 1 min 1 max 128

// ENGINE: sent all parameters and is ready
uciok

// GUI: set hash to 32 MB
setoption name Hash value 32

// GUI: waiting for the engine to finish initializing
isready

// ENGINE: finished setting up the internal values and is ready to start
readyok

// GUI: let the engine know if starting a new game
ucinewgame

// GUI: tell the engine the position to search
position startpos moves e2e4

// GUI: tell the engine to start searching
//      in this case give it the timing information in milliseconds
go wtime 122000 btime 120000 winc 2000 binc 2000

// ENGINE: send search information continuously during search
//         this includes depth, search value, time, nodes, speed, and pv line
info depth 1 score cp -1 time 10 nodes 26 nps 633 pv e7e6
info depth 2 score cp -38 time 22 nodes 132 nps 2659 pv e7e6 e2e4
info depth 3 score cp -6 time 31 nodes 533 nps 10690 pv d7d5 e2e3 e7e6
info depth 4 score cp -30 time 55 nodes 1292 nps 25606 pv d7d5 e2e3 e7e6 g1f3

// ENGINE: return the best move found
bestmove d7d5

Mnoho aspektů interakce jsem zjednodušil. Plně funkční GUI bude muset podporovat spoustu dalších příkazů, které můžete najít ve specifikaci UCI (jiný zdroj). Můžete se také podívat na to, jak fungují stávající GUI. Pokud například používáte Arena, můžete stisknout F4 a zobrazit protokol interakce příkazu,


Linux
  1. Odstraňte problémy s použitím souborového systému proc na Linuxu

  2. Použití síly na příkazovém řádku Linuxu

  3. Spuštění aplikace Qt přes web

  1. Použití –exclude With The Du Command?

  2. Vytvořte virtuální síťové rozhraní pomocí příkazu iproute2 ip link s podvrženou MAC adresou

  3. Jaká je režie používání subshellů?

  1. Jak změnit název rozhraní v CentOS/RHEL 8 pomocí prefixdevname

  2. kdevtmpfsi pomocí celého CPU

  3. Jak zjistit, jaké rozhraní používám pro připojení k internetu?