# 306 TTT Planning ## Preparation * make a simple mockup/wireframe of your TTT board * think of all the html elements you will need to structure the document (TTT board, message area, page title) * visually draw out everything out * review phase * look over lessons this week that you need to review * read the gitbook * review the code lessons/labs * do some googling * start writing code and do not panic * copy our psuedocode into your files ## Psuedocode ### html ```htmlembedded! <!-- your index.html --> <!-- header for page --> <!-- grid of nine squares --> <!-- some kind of area for a message to the player --> <!-- button rest --> ``` ### css ```css! /* styles.css */ /* just enough styling to get a gird and setup the gameboard */ /* DO NOT DO ANY OTHER STYLING UNTIL YOU ARE FINISHED */ ``` ### javascript ```javascript! // script.js // APP STATE (varaibles) // players choices (a vritual representation of the gameboard) // use an array (1d array approach) ['x', '', '', '', '', '', '', 'o', ''] // 2d array approach // [ // ['x', '', ''], // ['', '', ''], // ['', 'o', ''] // ] // whose turn it is (is it x or o) // a boolean value that tells you if the game is currently running // (optional) a turn counter that is used to detect cats games when it reaches 9 // (bonus) -- how many times each player has won // EVENT LISTENERS // a click on the reset button // event listener for when you click on the gameboard // when a square is clicked we should do the following: // set the innertext of the square that got clicked on of whose turn it currently it // prevent repeat clicks -- check the gameboard array or check the innertext // set the move into the gameboard array // check if there is a winner // if someone has won, end the game and updated the message for who has won // think about all the conditions to win the game and check for all of them // check for cats game // if every square is an x or an o and no one has won // or count turns // if no one has won, let gameplay continue (switch turns) ```