So far, we have been writing functions, working with
loops, and writing conditionals. We also learned about how HTML elements are styled and behave in the DOM, including how to make elements responsive.
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 weekdend homework, you'll be building a tic tac toe game in HTML, CSS, and writing the logic for the game in JavaScript.
## Exercise
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!
#### Requirements
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.
## Requirements
- The gameboard should be responsive, both horizontally and vertically
- A user should be able to click on different squares to make a move
@ -35,6 +41,8 @@ For your weekdend homework, you'll be building a tic tac toe game in HTML, CSS,
---
## 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.
@ -43,19 +51,20 @@ For your weekdend homework, you'll be building a tic tac toe game in HTML, CSS,
gameboard. The gameboard page should include the 3x3 grid and at minimum, a reset button. 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, maintaining the right proportions
<hr>
** Commit your work.** <br>
The commit message should read: <br>
"Commit 1. Constructed gameboard".
"Commit 1. Constructed responsive gameboard".
<hr>
- JavaScript portion will be next:
* Locate the element first to use it within your app. Think about
* Locate the element or elements first to use within your app. Think about
using `document.getElementById`, `document.getElementsByClassName` or something similar to locate your target elements. Try this in your console to make sure your selection works.
* After finding the elements, start writing logic to listen for
`click` events on those elements.
* After finding the elements, start writing logic to listen for `click` events on those elements.
* You will also need a variable to keep track of moves - this
will be used to indicate whether or not to draw an `X` or an `O`.
@ -80,8 +89,7 @@ The commit message should read: <br>
<hr>
- After the necessary moves have been played, stop the game and display the
winner if one player ends up winning with three in a row
- After the necessary moves have been played, stop the game and display the winner if one player ends up winning with three in a row
- When the user clicks the 'reset' button, they can play a fresh game
<hr>
@ -92,7 +100,7 @@ The commit message should read: <br>
** BONUS **
- Write an AI that will play against you and make random moves.