Skip to content

Latest commit

 

History

History
29 lines (22 loc) · 2.03 KB

README.md

File metadata and controls

29 lines (22 loc) · 2.03 KB

The Odin Curriculum Tic Tac Toe

This project is a simple implementation of the classic Tic-Tac-Toe game, developed as part of my learning journey in front-end web development. It was completed as a task for The Odin Project FullStack JS curriculum, with assistance from ChatGPT for guidance and clarification on JavaScript concepts.

Project Objective

  • Game Setup: Implement the game logic using modular JavaScript, storing the gameboard and player information in objects.
  • Modular Approach: Minimize global variables by encapsulating functionalities inside factories and employing the module pattern (IIFE) where applicable.
  • Logical Structure: Strategically place logic within game, player, and gameboard objects to ensure clarity and maintainability.
  • Console Game: Initially focus on building a functional game in the console, ensuring it detects winning conditions (3-in-a-row) and ties.
  • DOM Integration: Develop DOM manipulation functions to render gameboard contents and enable player interaction (placing markers) via clicks.
  • User Interface: Enhance user experience with features like player name input, game start/restart button, and results display upon game completion.

Implemented Features

  • Player Input: Allows players to enter their names and markers (X or O) before starting the game.
  • Board Size Customization: Supports different board sizes, allowing for flexibility in gameplay.
  • Winning Score Configuration: Players can set a custom winning score to determine the number of rounds needed to win.
  • Responsive Design: Utilizes CSS Flexbox and Grid for responsive layout across various devices.
  • Gameplay Logic: Implements game logic to determine wins, draws, and player turns. UI Updates: Dynamically updates the game board and player information during gameplay.

Technologies Used

  • HTML5 with a little of BEM
  • SASS & CSS3 (including Flexbox and Grid for layout)
  • Vanilla JavaScript: Used for game logic and DOM manipulation
  • GitHub: Version control and repository hosting