Difference between revisions of "Python-chess"
Line 58: | Line 58: | ||
The [https://en.wikipedia.org/wiki/Universal_Chess_Interface Universal Chess Interface] is an open communication protocol to allow chess engines to talk to each other or user interfaces. | The [https://en.wikipedia.org/wiki/Universal_Chess_Interface Universal Chess Interface] is an open communication protocol to allow chess engines to talk to each other or user interfaces. | ||
+ | Example: | ||
+ | <source lang='bash'> | ||
+ | stockfish | ||
+ | Stockfish 240314 SSE4.2 by Tord Romstad, Marco Costalba and Joona Kiiski | ||
+ | go | ||
+ | info depth 1 seldepth 1 score cp 75 nodes 27 nps 13500 time 2 multipv 1 pv e2e4 | ||
+ | info depth 2 seldepth 2 score cp 12 nodes 140 nps 70000 time 2 multipv 1 pv e2e4 e7e5 | ||
+ | info depth 3 seldepth 3 score cp 51 nodes 345 nps 115000 time 3 multipv 1 pv e2e4 d7d5 b1c3 d5e4 c3e4 | ||
+ | info depth 4 seldepth 4 score cp 12 nodes 1059 nps 211800 time 5 multipv 1 pv g1f3 d7d5 d2d4 g8f6 | ||
+ | info depth 5 seldepth 5 score cp 50 nodes 1678 nps 279666 time 6 multipv 1 pv g1f3 d7d5 d2d4 g8f6 b1c3 | ||
+ | info depth 6 seldepth 6 score cp 12 nodes 3941 nps 394100 time 10 multipv 1 pv d2d4 g8f6 b1c3 d7d5 g1f3 b8c6 | ||
+ | info depth 7 seldepth 7 score cp 46 nodes 5356 nps 446333 time 12 multipv 1 pv d2d4 g8f6 b1c3 d7d5 g1f3 e7e6 e2e3 | ||
+ | info nodes 5356 time 12 | ||
+ | bestmove d2d4 ponder g8f6 | ||
+ | quit | ||
+ | </source> | ||
+ | == Links == | ||
+ | * https://stackoverflow.com/questions/17003561/using-the-universal-chess-interface | ||
+ | * https://gist.github.com/aliostad/f4470274f39d29b788c1b09519e67372 | ||
[[Category:Chess]] | [[Category:Chess]] |
Revision as of 08:22, 27 December 2019
Click here to comment see PlayChessWithAWebCam
python-chess is a pure Python chess library with move generation, move validation and support for common formats. It is open sourced at https://github.com/niklasf/python-chess
Based on a request for more detailed documentation this page gives some more details.
Documentation
Glossary
See Play Chess With a Webcam Issue 'Detecting Moves by a WebCAM' for how the terms below might be used.
AN Algebraic Notation
The Algebraic Notation describes moves on the chessboard by giving each field a name e.g. "a2" and thus allow to describe from which field e.g. "a2" to which other field e.g. "a4" a move has been performed.
Example a2 a4 move:
FEN Forsyth–Edwards Notation
The Forsyth–Edwards Notation describes a board position.
Examples:
Given a FEN you can continue playing from that position. E.g given 8/5k2/8/5K1P/8/8/8/8
a game might continue as:
PGN Portable Game Notation
The Portable Game Notation is used to record the course of a game for others to follow or replay.
Example:
[Event "Play Chess With a WebCam"] [Site "Willich, Germany"] [Date "2019-12-21 12:46:49"] [Round "1"] [White "Wolfgang"] [Black "Maria"] [Result "1-0"] 1. e4 e5 2. Bc4 Nc6 3. Qh5 Nf6 4. Qxf7# 1-0
If you paste the above PGN into https://lichess.org/paste you'll get the following result:
See also http://lichess.bitplan.com
UCI Universal Chess Interface
The Universal Chess Interface is an open communication protocol to allow chess engines to talk to each other or user interfaces.
Example:
stockfish
Stockfish 240314 SSE4.2 by Tord Romstad, Marco Costalba and Joona Kiiski
go
info depth 1 seldepth 1 score cp 75 nodes 27 nps 13500 time 2 multipv 1 pv e2e4
info depth 2 seldepth 2 score cp 12 nodes 140 nps 70000 time 2 multipv 1 pv e2e4 e7e5
info depth 3 seldepth 3 score cp 51 nodes 345 nps 115000 time 3 multipv 1 pv e2e4 d7d5 b1c3 d5e4 c3e4
info depth 4 seldepth 4 score cp 12 nodes 1059 nps 211800 time 5 multipv 1 pv g1f3 d7d5 d2d4 g8f6
info depth 5 seldepth 5 score cp 50 nodes 1678 nps 279666 time 6 multipv 1 pv g1f3 d7d5 d2d4 g8f6 b1c3
info depth 6 seldepth 6 score cp 12 nodes 3941 nps 394100 time 10 multipv 1 pv d2d4 g8f6 b1c3 d7d5 g1f3 b8c6
info depth 7 seldepth 7 score cp 46 nodes 5356 nps 446333 time 12 multipv 1 pv d2d4 g8f6 b1c3 d7d5 g1f3 e7e6 e2e3
info nodes 5356 time 12
bestmove d2d4 ponder g8f6
quit