NimGames.net is an interactive educational website for learning and exploring game theory, especially as it applies to competitive programming and combinatorial games. The site provides a hands-on experience with classic impartial games, allowing users to play against the computer or challenge other players live online.
- Interactive Game Theory Playground: Learn the fundamentals of combinatorial game theory through play and experimentation.
- Play Against the Computer: Test your strategies against a computer opponent with optimal play.
- Live Multiplayer: Play real-time games against other users from around the world.
- Educational Content: In-depth articles and tutorials explaining the theory and strategies behind each game.
- Nim: The classic game of removing stones from piles, foundational to combinatorial game theory.
- Marbles: Take turns removing one to three marbles and win if you remove the last one.
- Lone Knight: Move a single knight on a chessboard with restricted moves.
- Multi Knight: Multiple knights on a chessboard with restricted moves.
Visit https://nimgames.net to start playing and learning.
- Install dependencies:
npm install - Start the development server:
npm run dev - (Optional) Start the WebSocket server for live play:
npm run start:ws - Open your browser to http://localhost:3000.
- The site is hosted at https://nimgames.net.
- Nginx is used as a reverse proxy for both the Next.js frontend and the WebSocket backend.
app/– Next.js application pages and componentsgames/– Game logic implementationswebsocket/– WebSocket server and client utilitiestypes/– Shared TypeScript typespublic/– Static assets
This project is for educational purposes.
Explore, play, and master the art of combinatorial games at nimgames.net!