This project is a Tic-Tac-Toe game implemented using React, XState for state management, and styled-components for styling. The game features a responsive and visually appealing UI, with a state machine managing the game logic.
20240806_171658.mp4
State Machine Design: The game uses XState's state machine to manage different states of the Tic-Tac-Toe game. The states include idle, playing, checkingWin, won, and draw. This design ensures a clear and maintainable structure for handling game logic and transitions.
Responsive Design: The game board and buttons are styled to be responsive using styled-components. The grid layout adjusts to different screen sizes, and the buttons are styled with gradients and hover effects for a modern look.
Unit Tests: We use Jest and React Testing Library to test the state machine and React components. Tests cover state transitions, game logic, and UI interactions.
First, install dependencies:
npm i
# or
yarn
run the development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
Run tests:
npm run test
# or
yarn run test
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.