A developer-friendly TicTacToe game that runs in your terminal. Take a break from coding and enjoy a quick game without leaving your development environment! ⌨️
_______ ______ ______
/_ __(_)__/_ __/__ ___/_ __/__ ___
/ / / / __// / / _ `/ __// / / _ \/ -_)
/_/ /_/\__//_/ \_,_/\__//_/ \___/\__/
- 🎯 Play TicTacToe directly in your terminal
- 🤖 Challenge the unbeatable AI opponent
- ⌨️ Vim-style navigation (h,j,k,l) or arrow keys
- 🎨 Colorful interface with intuitive controls
- 👥 Multiple game modes (vs Human, vs Computer)
- 🎭 Simple and clean UI with borders and highlighting
- 🔄 Play again feature after game completion
- Make sure you have Go installed (version 1.21.7 or higher)
- Install the game using:
go install github.com/abdullahnettoor/[email protected]
- Start a new game:
tictactoe new
-
Select game mode:
- 👥 Local Multiplayer (2 Players)
- 🤖 Local Computer (vs AI)
- 🌐 Online Multiplayer (Coming soon!)
-
Controls:
- 🕹️ Move: Arrow keys or Vim keys (h,j,k,l)
- ✅ Place mark: Enter
- 🔄 Play again: P
- ❌ Quit game: Q or Ctrl+C
-
Game Rules:
- Players take turns placing their marks (X and O)
- First player to get three in a row wins!
- In Computer mode, try to beat the AI (if you can! 😉)
- 🔧 Go 1.21.7 or higher
- 📦 Dependencies:
- github.com/charmbracelet/bubbletea - Terminal UI framework
- github.com/charmbracelet/lipgloss - Style definitions
- github.com/spf13/cobra - CLI framework
- Clone the repository:
git clone https://github.com/abdullahnettoor/tictactoe.git
- Navigate to the project directory:
cd tictactoe
- Build and run:
make run
.
├── 📄 main.go # Entry point of the application
├── 📂 cmd/
│ ├── 📄 root.go # Root command configuration
│ ├── 📄 new.go # New game command handler
│ └── 📂 view/
│ ├── 📂 board/ # Game board implementation
│ │ ├── 📄 board.go # Core game logic and UI
│ │ ├── 📄 ai.go # AI player implementation
│ │ └── 📄 utils.go # Helper functions and styling
│ └── 📂 menu/ # Game mode selection menu
└── 📄 go.mod # Go module file
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Abdullah Nettoor