A terminal-based Memory/Concentration card game built with React, Ink, and Ink Playing Cards
- 🎮 Multiple game modes:
- Single player (1P)
- Player vs Player (2P)
- Player vs AI
- 📏 Flexible grid sizes:
- Preset grids (2x2 to 12x12)
- Custom grids up to 12x12
- Design your own grid layout!
- ⏱️ Speed Runs with Time tracking
- 🎯 Persistent High Score tracking
- 🤖 AI opponent
You can play tMemory without installing it by using npx
:
npx tmemory
Or install it globally:
npm install -g tmemory
Then run:
tmemory
-
Start Screen:
- Press 'G' to switch game mode (1P/2P/AI)
- Press 'M' to switch between preset and custom grid modes
- In preset mode:
- Use ⬆️/⬇️ arrows to cycle through predefined grid sizes
- In custom mode:
- Use ⬅️/➡️ arrows to adjust number of columns
- Use ⬆️/⬇️ arrows to adjust number of rows
- Press Space or Enter to start game
-
During Game:
- Use arrow keys to navigate the grid
- Press Space to flip a card
- Match pairs of cards to score points
- In 2P mode, players take turns
- In AI mode, take turns with the AI opponent
-
Game Over:
- View your completion time
- Check final scores
- Press 'n' to start a new game
- Press 'q' to quit
- React
- Ink - React for CLI
- ink-playing-cards - Card rendering
- TypeScript
Contributions are welcome! Love to hear any feedback or suggestions you have. Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to Vadim Demedes for creating Ink
If you found this project helpful, please give it a ⭐️!