Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lk16/chessbot
Simple implementation of a chess-playing program
https://github.com/lk16/chessbot
chess-engine educational twitch
Last synced: 3 months ago
JSON representation
Simple implementation of a chess-playing program
- Host: GitHub
- URL: https://github.com/lk16/chessbot
- Owner: lk16
- License: bsd-3-clause
- Created: 2022-06-11T15:17:28.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-25T18:41:47.000Z (over 2 years ago)
- Last Synced: 2023-03-31T05:18:05.421Z (almost 2 years ago)
- Topics: chess-engine, educational, twitch
- Language: Python
- Homepage:
- Size: 63.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chess bot
In this repo we create a chess bot. This is a project that is developed on my [twitch stream](https://twitch.tv/thebigmerp).
Initially the aim of this stream is to show people without programming experience how something like this is done.
## Streams
Every last commit after a stream ends gets a tag. That way progress can be seen here while watching the streams back.
#### [stream-01](https://github.com/lk16/chessbot/tree/stream-01)
- Setup repo (off-stream)
- Added `Board` class
- Printing a board in black/white#### [stream-02](https://github.com/lk16/chessbot/tree/stream-01)
- Add colorized board printing (off-stream)
- Add moves for king, knight, rook, bishop and queen#### [stream-03](https://github.com/lk16/chessbot/tree/stream-03)
- Add all pawn moves, including promotion, capturing and "en passent"#### [stream-04](https://github.com/lk16/chessbot/tree/stream-04)
- Add Board/FEN conversion (off-stream)
- Bugfix: capture and promote at the same time
- Detect check
- Castling
- Prevent moves that put yourself in check#### [stream-05](https://github.com/lk16/chessbot/tree/stream-05)
- Debug opening tree sizes using [Chessnut](https://github.com/cgearhart/Chessnut)
- Implement "en passent" correctly
- Build a bot that plays random moves
- Play bot vs bot
- Fix bug: king can capture other king
- Detect game endings#### [stream-06](https://github.com/lk16/chessbot/tree/stream-06)
- Implement tree-search using minimax
- Add smarter bots `MaterialBot` and `PawnPusherBot`
- Fix assertion bug in `Game`### See also
Future features and fixes can be found in the [TODO](./TODO.md) file.## Links to used resources
- [Chess unicode symbols wiki](https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode)
- [Chessboard editor](https://lichess.org/editor)
- [Chess opening tree sizes](https://www.chessprogramming.org/Perft_Results)
- [Chess FEN notation wiki](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)
- [Chess library Chessnut](https://github.com/cgearhart/Chessnut) (removed from repo, was only used for debugging)