From bc3e4994ec1a818558e937a76be4431f142735a5 Mon Sep 17 00:00:00 2001 From: Thom Page Date: Mon, 23 May 2016 12:52:47 -0400 Subject: [PATCH] first draft --- unit_01/w02d05/homework/tic_tac_toe.md | 112 +++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 unit_01/w02d05/homework/tic_tac_toe.md diff --git a/unit_01/w02d05/homework/tic_tac_toe.md b/unit_01/w02d05/homework/tic_tac_toe.md new file mode 100644 index 0000000..ee2eced --- /dev/null +++ b/unit_01/w02d05/homework/tic_tac_toe.md @@ -0,0 +1,112 @@ +![ga](http://mobbook.generalassemb.ly/ga_cog.png) + +# WDI-PANTHALASSA + +--- +Title: Tic Tac Toe
+Type: Homework
+Duration: Weekend
+Creator: + Thom Page
+ Course: WDIr-Panthalassa
+Competencies: JS DOM manipulation, loops, conditionals, functions
+ +--- + +# Tic Tac Toe + +## Introduction + +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. + +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 + +#### Requirements + +- 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 +- Upon marking of an individual cell, use JavaScript to add a class to each cell to display separate colors +- A cell should not be able to be replayed once marked +- Add a reset button that will clear the contents of the board + +--- + + - 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 and at minimum, a reset button. Using `id` and `class` on clickable + elements will help you wire this up in JavaScript afterwards. + +
+** Commit your work.**
+The commit message should read:
+"Commit 1. Constructed gameboard". +
+ + - JavaScript portion will be next: + + * Locate the element first to use it 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. + + * 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`. + + +- Display a message to indicate which turn is about to be played + + +
+** Commit your work.**
+The commit message should read:
+"Commit 2. Board is clickable and tracks moves". +
+ +- Determine a set of winning combinations. Check those + combinations on the board contents after every move. + +
+** Commit your work.**
+The commit message should read:
+"Commit 3. Winning conditions established". +
+ + +- 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 + +
+** Commit your work.**
+The commit message should read:
+"Commit 4. Game is complete". +
+ + +** BONUS ** +- Write an AI that will play against you and make random moves. + +
+** Commit your work.**
+The commit message should read:
+"Commit 5. Game is playable against AI". +
+ + + +#### Deliverable + +Here are some screenshots to give you a rough guide of what you'll be creating. Feel free to get creative with how you style your interface. + +![Screen-shot](https://i.imgur.com/kz2L9f9.png) +![Screen-shot](https://i.imgur.com/d8lFshD.png) + +