A terminal-based American Checkers game written in Go featuring turn-based play, multi-jump sequences, forced captures, piece promotion, and win detection with a clean CLI interface.
Technologies
Go 1.21+CLIGame LogicTerminal UIBoard GamesAlgorithmsInput ValidationUnicode
Terminal Preview
checkers — American Checkers
A B C D E F G H
+----+----+----+----+----+----+----+----+
8 | | ⚫ | | ⚫ | | ⚫ | | ⚫ | 8
+----+----+----+----+----+----+----+----+
7 | ⚫ | | ⚫ | | ⚫ | | ⚫ | | 7
+----+----+----+----+----+----+----+----+
6 | | ⚫ | | ⚫ | | ⚫ | | ⚫ | 6
+----+----+----+----+----+----+----+----+
5 | | | | | | | | | 5
+----+----+----+----+----+----+----+----+
4 | | | | | | | | | 4
+----+----+----+----+----+----+----+----+
3 | 🔴 | | 🔴 | | 🔴 | | 🔴 | | 3
+----+----+----+----+----+----+----+----+
2 | | 🔴 | | 🔴 | | 🔴 | | 🔴 | 2
+----+----+----+----+----+----+----+----+
1 | 🔴 | | 🔴 | | 🔴 | | 🔴 | | 1
+----+----+----+----+----+----+----+----+
A B C D E F G H
Red's turn. Enter move (e.g. A3 B4): _
Overview
Overview
This Checkers implementation is a complete, terminal-based game written in Go that demonstrates clean code architecture and game development principles.
Built as a learning exercise in structuring a small Go CLI game, the code is intentionally compact and readable while maintaining full functionality.
The project showcases practical application of Go’s strengths in CLI applications, including clean package structure, efficient algorithms for move validation, and user-friendly terminal interface design with Unicode piece representation.
Features
Features
Game Mechanics
- Turn-based play between Red and Black players
- Standard diagonal movement rules for pieces
- Automatic forced capture detection and enforcement
- Multi-jump capture sequences in single commands
- Piece promotion to Queen (King) at far ranks
- Win detection when opponent has no pieces
User Interface & Controls
- Clean 8x8 board display with coordinate labels
- Unicode piece symbols
- Intuitive coordinate input system (A1-H8)
- Chain move input for multi-jumps
- Case-insensitive input parsing
- Clear error messages and move validation