Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.59 KB

README.md

File metadata and controls

53 lines (40 loc) · 2.59 KB

chess.py

chess.py is small, text-based chess game implementing all known rules of chess (including the oft-forgotten "en passant" special capture rule :-)

Unicode characters are pretty cool

Requirements

Currently, python3 is the only dependency, so the game should also run on Windows and MacOS X.

Chess pieces are represented with the standard unicode characters

In the future I will add a graphical user interface (likely using the 'pygame' library)

(The game is currently completely terminal/command-line based. At the moment, the player selects pieces by typing the coordinates (eg. 'e2' followed by 'e4' to play the famous "King's Pawn" opening move).)

Completed Features

Core gameplay is complete, with all known chess mechanics implemented:

  • Pawn
  • Knight
  • Bishop
  • King
    • King/Rook Castling
  • Rook
  • Queen
  • Main game logic: Turn-based basic playable game mechanics
  • Check/checkmate detection
  • Draw detection

History

chess.py was written during freetime between December 2013 and January 2014, but was abandoned near-completion of terminal-based gameplay. After a 4 year hiatus, development was resumed with the left-over gameplay mechanics (described above) being quickly implemented.

Roadmap

With the terminal-based chess game fully completed, it serves as a building block for future projects:

  • Refactor terminal application into client/server architecture
    • Communication of each player via JSON messages send over TCP sockets
    • [] Provide opponent connection status etc
    • [] Confirm validity of JSON messages
  • [] Create a TypeScript 'chess.ts' client
  • [] Host chess.py on a persistent cloud server, with chess.ts as the frontend
    • [] Host multiple sessions
  • [] Computer player AI bot
  • [] Graphical user interface (in python) with move selection through mouse clicks
  • [] Create Android client (with the Flutter UI framework) and publish on app store