
# WDI-PANTHALASSA
---
Title: Tic Tac Toe
Type: Homework
Duration: Weekend
Creator:
J. Nappy
Adapted by:
Thom Page
Course: WDIr-Panthalassa
Competencies: JS DOM manipulation, loops, conditionals, functions, game logic
---
# Tic Tac Toe
## Introduction
So far, we have been writing functions, working with
loops, and writing conditionals, and we also learned about how HTML elements are styled and behave in the DOM, including how to make elements responsive.
For your weekend homework, you'll be building a tic tac toe game in HTML, CSS, and writing the logic for the game in JavaScript.
It is up to you to figure out how each piece should work. Pseudo-code the problems, talk it out with a rubber duck, research the problems, and above all ... talk to your classmates!
Think about your program design, when and if you should use functions, loops, conditionals, etc. Your code should be modular and extensible.
And remember, at the end of this process your code should be your own.
## Collaboration
You must talk things out and share ideas with your classmates or you will not make much progress. This weekend, stay wired in to Slack, set up a Zoom room, invite your classmates. You should not, and cannot do this assignment in a vacuum. Stay connected!
## Requirements
- Collaborate with your classmates on Zoom and Slack
- The gameboard should be responsive, both horizontally and vertically
- A user should be able to click on different squares to make a move
- Each click will alternate between marking an `X` and `O` in turn
- A cell should not be able to be replayed once marked
- Add a reset button that will clear the contents of the board
---
## Directions
- Construct an `index.html` to be your starting point on this
project. Add your necessary HTML tags, including `script` and
`link` tags to link to your JavaScript and CSS, respectively.
- Before you even start working with JavaScript, construct the
gameboard. The gameboard page should include the 3x3 grid. Using `id` and `class` on clickable
elements will help you wire this up in JavaScript afterwards.
- Using what you know about responsive design, make sure the gameboard will resize with the browser window. The board can skew if you like.
- Make your board look nice! Try to use at least one of the advanced CSS pseudo selectors. But be careful! Don't get sucked in to tinkering with the look of your board for too long . . .