/tic-tac-toe

Primary LanguageJavaScript

Tic-Tac-Toe

Abstract:

Boredom is and always will be an existential issue. In the 90's kids may have played Pokemon. In the mid-century, kids might have played kick the can. In the 1800's they probably just stared at a wall or something. But in 2023, kids will play Tic Tac Toe! This application effectively and effortlessly solves the long standing issue of boredom forever by allowing users to play one of the most loved games internationally in a digital way! Users can choose 1 player mode and play against a computer, or bring a friend along to play with 2 players.

Installation Instructions:

  • Open the repo in Github: https://github.com/adam-meza/tic-tac-toe
  • Use the terminal to clone the repository to your local machine
  • Navigate into the project directory
  • Run the command open index.html to open the app in your browser

Preview of App:

alt text

Context:

This application was designed, built, and refined over a 1 week timeline as the final project of the first module of the Turing program.

Contributors:

This application was completed in it's entirety by:

Adam Meza - LinkedIn, GitHub

Learning Goals:

The learning goals of this project were:

  • Solidify and demonstrate an understanding of:
  • DRY JavaScript
  • event delegation to handle similar event listeners
  • Understand the difference between the data model and how the data is displayed on the DOM
  • Iterate through/filter DOM elements using for loops
  • Using a problem solving process to break down large problems, solving things step by step

Wins + Challenges:

During this project the work that proved to be the most challenging revolved around achieving functionality while maintaining DRY and SRP standards of code. I found that the more complex my project became the harder it was to keep track of what functions were and weren't dynamic enough to support a wide variety of usages. I solved this by extensively psuedocoding and plotting out each step as I added it on.

Another challenge that I actually enjoyed was figuring out how to handle the win condition of my game. This required a large amount of preparation before a single line of code was written. By extending my ideation stage beyond what might be considered normal I was able to very rapidly execute the MVP for this project.