Implement a basic Tic Tac Toe game.
Specifications:
- Fork this repository. The project is already bootstraped via create-react-app
- Commit all the steps onto your own fork
- A simple 3x3 grid where the user can click a square to place an X or an O, depending whose turn it is
- When 3 X's or O's are matched either horizontally, verically or diagonally the matched sign wins
- If all 9 squares are filled, the squares should not be clickable
- If a win/loss or draw occurs - allow the user to restart the game
- The game should keep score how many games X and O have won and how many games were draw
Mandatories:
- Don't copy existing applications
- Use React
- Use styled-components for styling
Bonus points:
- Use React hooks
- Meaningful tests, not just tests for coverage
- Clean, concise, reusable code
- Make it look nice
- Clear git usage. Commit when you make a nice amount of work that doesn't break the master branch
Super extra bonus points:
- Allow the board to be of any size. Let's say the board is NxN - it will take N horizontal/vertical/diagonal matches of the same sign to win. No need to handle this from the UI, just make a constant which will define the board size.