Note: This document is a work in progress. You can help improve it.
With a partner, create a design for a tic-tac-toe game. Practice your technical design skills (i.e. thinking about how you would code this).
- Plan and design "ideas"
- Collaborate and communicate effectively around technical ideas
- Implement code together with a partner
Features to consider:
- Game should be played on the same computer.
- As a user, I should be able to see a tic-tac-toe board.
- As a user, the game should alternate turns, between
- As a user, I should be able to click in a square and play either
O, respective of the turn.
- As a user, when I get three in a row, I should be told I've won and the game should be over.
- These designs should be so detailed that you could give them another team and they could implement it with few (if any) questions.
- If at any time you want to validate a piece of your design (e.g. the algorithm, event handling, or UI/UX), you can create an extremely simple site that proves or disproves your idea.
WITH your partner: submit a full design of how to approach this problem. This should include:
- A digital mock up (created using software, or a photo/scan of an analog drawing)
- Implementation details, such as how you are implementing each square
- A list of events you are listening for
- psuedo-code describing your program (e.g. event-handling, game logic)
Finally, also with your partner:
- Create your tic-tac-toe game!
- Plan the implementation of a "vs computer" mode, that picks a random square.
- Have fun with the CSS by adding colors, animations and effects to make the game more enjoyable.
- Modify your "vs computer" mode to follow a specific strategy (of your choice).