iPoetDev / MiniTicTacToe

MiniTicTacToe - NativeJS: UI - Client Controller - OOP Model/'Server'
https://ipoetdev.github.io/MiniTicTacToe/
BSD 2-Clause "Simplified" License
0 stars 1 forks source link
asynchronous classes-and-objects css3 ecmascript6 html javascript model-view-controller model-view-presenter proxy-objects tailwindcss

Mini_TicTacToe

"A solved, futile, game (as a known problem solved) used to demonstrate the principles of front end web development and interactive web app design, development and deployment using version source control."

1.0 Introduction

Complete: ✅ 24/01/22

Tic Tac Toe origins can be traced back to its progenitor of three-in-a-row boards as fare back to ancient Egypt (since 1300 BC). Early variations of tic-tac-toe come from the Roman Empire (known as terni lapilli/three pebbles at a time). Another variation is three man morris. For more on the history.

Tic Tac Toe is a typical entry point for student developers to learning simple coding precepts and software development projects, hence it was chosen for this project. See the following goals in sections 1.1 Goals, 2.0 Solutions and 4.0 User Experience for goals and motivations. Additionally, it can get advanced with entry points into algorithm study via disciplines of Combinatorics and types of Artificial Intelligence algorithms; this is out of scope for the current project's goals and learning outcomes.

Source: https://en.wikipedia.org/wiki/Tic-tac-toe

1.1 Goals ✅

Simple Goals, bullets points

1.1.1 App Goals

Complete: ✅ 24/01/22

For specific solution and user goals, see 2.0 Solution and 4.0 User Experience sections below.

1.1.2 Project Goals

Complete: ✅ 24/01/22

1.2 Live App

Complete: ✅ 24/01/22

Name Website Repo Name Repo URL
Project https://ipoetdev.github.io/MiniTicTacToe/ Repo https://github.com/iPoetDev/MiniTicTacToe

1.3 App Visual 🚧

amiresponsive.co.uk/ | URI: AmIResponsive


::


2.0 Solution: Tic Tac Toe - A Grid Game 🚧✅

Complete: ✅ | Review: ❓

2.1 Game Play ✅✅

Example GamePlay: Wikipedia.com (1)

2.1.1 This Game Play ✅✅

1: Source: https://en.wikipedia.org/wiki/Tic-tac-toe#Gameplay 2: Source: https://en.wikipedia.org/wiki/Futile_game 3: Source: https://github.com/miloszmisiek/ci_p2_tictactoe#gameplay, Author: Milosz Misiek https://github.com/miloszmisiek (2021), Last Accessed: Dec 12, 2023


2.3 Developer Motivations ✅✅


2.4 Future Features 🚧

For versions beyond version 2.0 / Alpha


2.5 Open Source Influences ✅✅

2.5.1 Early Development: Upto Breaking Change and Bump to v2.0

Initially this project concept was to follow the author-developer, (myself), preferences for certain styles of programming and paradigms by using Tailwinds .

Why: All Students reference former students previous code submissions and this is not an uncommon practice. Scott Windon's example is a good example of AlpineJS implementation, architecture and reference code. All Code will be commented and accredited as it is included into this solution and project.

Shared Concepts: Reused.

2.5.2 Alpine Abandoned:


::


3.0 User Experience ✅✅

Complete: ✅ 24/01/23

3.1 Target Audience ✅

Any of these audiences/roles or personas are all forms of Users.

Audience Audience Goal **Role \ Type** Persona __
Casual Gamers People looking for a quick and easy game to play Gamer Casuals
Classic Gamers People who like the classic grid games, i.e tic-tac-toe Gamer Fans
First Time Players People who never played a game of Tic Tac Toe Player First Timers
Returning Players People who want to repeat a game and keep score Player Returners
Frequent Players People who want to improve their gaming experience, across multiple form factors Player Frequents
Dev Students Student Developer

A gamer (role) can be one of three player types to form sub personas.

3.2 Features ✅

In the context of Agile workflows: A feature is a chunk of work from the Epic – a deliverable that adds value and moves towards completing the Epic.

In this context, the author-developer extracts the definition of features and along with structuring semantics of a feature for definition purposes only so that:

Defining these features, within Milestones, (here), allows for alluding to the developer's Agile knowledge and for planning and design activities.


3.3 Milestones ✅

Submission ⛔

✅ Feature: App Branding & Brand Identity:
  - Icon: None, Future Version
  - Title/Text: Mini Tic Tac Toe, in a cursive hand written script
  - Color: See 4.3.2 for colors, theme is dark blue grey/gunmetal/indigo's
  - Whitespacing: Minimalist in style: few component
  - Dark Mode: Yes
✅ Is Part Of: Web Page
Version: 2.0.1.11
✅ Benefit:
  - Implies and imparts the game's intent and context implicitly.
  - A good Brand Identity allows for an emotional and logical connection as to the design ethos of the App.
  - A strong brand allows for quick recognition of the game's purpose and intuitive informational clues to how the game is played.
Acceptance:
  -
✅ Feature: The Game Banner is the page container that is composed of :
  - Game Title
  - ByLine:
    - Link to User Profile
    - Link to Project Repository on GitHub.com
✅ Is Part of: Web Page
Version: 2.0.1.11
✅ Benefit:
  - Allows for brand identity (a Title/Heading/Icon) positioning.
  - Allows for positioning simple in-game controls (like toggles) to control game options.
Acceptance:
  -
✅ Feature: The Game Title is the page element that is composed of :
  - Logo Heading: Mini Tic Tac Toe
✅ Is Part of: Game Brand
Version: 2.0.1.11
✅ Benefit:
  - Allows for brand identity (a Title/Heading) positioning.
  - Applying brand style and theming. See colors and fonts in section 4.0
Acceptance:
  -
✅ Feature:
  - Grid Cell Button x9: Receives the users click, to start the game and make each turn, as display the outcome of each turn
  - Reset Button: Rest the GameLogic engine AND the Game UI
  - Help Button: To Open the Game FAQ Modal/Pop Up
  - Close Buttons x2: To Close the Game FAQ Modal/Pop Up
✅ Version:
✅ Benefit:
  - Essential initiators of user interaction.
  - Additional surface for UI visuals and interactivity when user points a cursor
  - Display outcome of the user selection.
  - Show/hide hidden context/surfaces for additional contextual information
Acceptance:
✅ Feature:
  - 3 Rows of 3 grid Cells,each with an id of cell-id-{i} where i: 0>= i <=8
  - Each Cell is made up of Button for user interaction, event handling and action outcome, as well as animation effects.
✅ Version:
✅ Benefit:
  - Use of buttons, which are natural event handlers for interactions, simplifies good design and implementation for each user selection
Acceptance:
✅ Feature:
  A) Feedback on the game outcome
  - Update the Outcome button at top of Game Area
  - Default ot `No Result`
  - Possible Outcome messages:
    1. Winner of X Round is X i.e. X is the number of rounds
    2. Winner of X Round is O
    3. ⛔ The game is a Draw (not yet finalised).
  B) Visuals from the interaction
    - Tokens bounce in animation
    - The selected grid panels on selection, in focus, when active, also animate per grid cell
✅ Version:
✅ Benefit:
   - Provides signals to the user that they:
     1) Have made their turn
     2) Have reached the end of the game
     3) ⛔ To have made an illegal/bad move (Not yet implemented)
Acceptance:
✅ Feature: A Pop out help panel that
  - Informs of History fo the game with links to Wikipedia.
  - How the game is played convention.
  - How the current version of the game is to be played.
  - The current limitations, bugs, issues withe the game.
  - The future improvements scheduled on the roadmap.
✅ Version:
✅ Benefit:
  - Provides contextual and game instruction awareness to target audiences
  - Inform openly and transparent the bugs and limitations to the assessor/code reviewer for assessment/evaluation purposes.
Acceptance:

3.4 User Stories ✅

  • Stories, also called “user stories,” are short requirements or requests written from the perspective of an end user.
  • A Story should describe a need that can be satisfied by introducing a new feature or changing an existing feature.
  • User stories identify what an actor/user/target audience wants to achieve with the product and why.

User Story Template: Pro forma.

As a    : User/Role/Persona
I want  : User Objective/Want/Task
So that : User Motive/Why

3.4.1 For First Time Players who are both Casuals and Fans ✅

Beginners Features | Objective | Tasks

3.4.2 For Returning Players who are Casuals and Fans ✅

Intermediate Features | Objective | Tasks

3.4.2 For Frequent Players who are Fans and maybe Casuals ✅

Advanced Features | Objective | Tasks

Other Stories

  • [ ] ⛔ As a user, I want to be able to give my feedback
  • [ ] ⛔ As a user, I want to contact someone about the game
  • [x] ✅ As a site owner, I want users to be able to play a quick game of Tic Tac Toe
  • [x] ✅ As a site owner, I want users to be able to replay the game without having to refresh the page
  • [x] ✅ As a site owner, I want users to be able to clearly see some basic info on the game
  • [x] ✅ As a student developer, I want to be able to log to the console each game, turn and outcome game of Tic Tac Toe in the DevTools

3.5 Form Factors ✅

3.5.1 Device Screens ✅

Screen Resolution v Form Factor

Form Factor Orientation Device Size Screen Resolution Notes
Desktop HD Landscape Laptop 15" 1440 x 900
Desktop Wide Landscape Laptop 13" 1366 x 768
Tablet Standard Landscape Tablet 9.7" 1024 x 768
Tablet Standard Portrait Tablet 9.7" 768 x 1024
Mobile * Portrait iPhone 14* 393 x 660

Target Browser Compatibility

3.5.2 Responsiveness ✅

Users today are driven by experiences. Therefore, your web design must be responsive across all devices. With the increasing number of mobile users, one cannot emphasize the importance of responsive design in customer experience.

3.5.1 Choose Breakpoints
module.exports = {
    theme: {
        screens: {
            'sm': '336px', // Mobile
            'md': '768px', // Tablet
            'lg': '1024px', // Tablet Landscape
            'xl': '1366px', // Desktop Portrait
            '2xl': '1440px' // Full HD
        }
    },
}

What is a Breakpoint:

  • CSS Breakpoint is a “defined width” that is used in the webpage style to make the content and design responsive.
  • It helps enhance user experience by delivering consistent experience on different devices.
3.5.2.1 Common Breakpoints For Responsive Design (browserstack.com)

Assuming the default orientation is portrait for mobile and landscape for desktop.

Mobile Tablets Desktops
360×640,P 768x1366,P 1280x780,L
360×800,P 720x1280,P 1366x786,L
375×780,P 810x1080,P 1440x900,L
375×812,P --- 1536x864,L
393×844,P --- 1600x900,L
412×915,P --- 1920x1080,L
414×896,P --- 2560x1440,L
480x896,P --- ---
3.5.2.2 Best Practices for Adding Standard Responsive Breakpoints (browserstack.com)

::



::


4.0 Design / UI ✅

Complete: ❓ | Review: 📝 | To Do: 📌

4.1 Wireframe/Skeleton: ✅

AUTHOR NOTES: The Excalidraw master file for the following wireframes has been deleted. As a direct result, the author-developer was unable to edit and adjust the final design/implementation to look like the initial designs hereto presented.

So a hack & fix for this is:

Design difference between final and implemented

  1. Dark Color scheme over a light scheme as represented below.

4.1.1 App Page ✅

4.1.1.1 Desktop ✅

Note: The final design is different from the advertised design as the master design file was deleted by accident. See 9.2.4 & 9.2.5 for Final View for Desktop Wide, Desktop HD.

Breakpoints for Project
Desktop Wide Landscape 1366 x 768 Notes
13 Inch Laptop
Desktop HD Landscape 1440 x 900 Notes
...

4.1.1.2 Tablet ✅

Note: The final design is different from the advertised design as the master design file was deleted by accident. See 9.2.2 & 9.2.3 for Final View for Tablet Portrait, Tablet Landscape.

Portrait: 768 x 1024 Landscape 1024 x 768

4.1.1.3 Mobile ✅

Note: The final design is different from the advertised design as the master design file was deleted by accident. See 9.2.1 for Final View for Mobile

Portrait iPhone Landscape iPhone
....

4.2 Site Structure ✅

Submission Release ✅


4.3 Theme/Surface ✅

4.3.1 Fonts+ ✅

4.3.1.1 Web Safe Fonts ✅

The @font-face CSS rule allows web developers to specify online fonts to display text on their web pages. By allowing authors to provide their own fonts, @font-face eliminates the need to depend on the limited number of fonts users have installed on their computers.

4.3.1.2 Feature & Use ✅

Feature Element Font Name Root Size Desktop Tablet Mobile
Web Page Paragraph, Text Gochi-Hand 16 16 16 x 16 x
Game Title Headings: H1,H2,H3 Gochi-Hand
Game Controls Inputs, Buttons, Label, Toggles Gochi-Hand
Game Statuses Paragraph, Text, Span Gochi-Hand
Game Tokens Spa, Div, Text Gochi-Hand
Emoji Icons, Spirites FontAwesome
Game Play Help H2, H3, P, Em, Strong, A Inter
4.3.1.3 Inter ✅

4.3.1.4 Gochi-Hand ✅

Note: These screenshots of fronts come from Google Fonts for Inter and Gochi-Hand respectively. The quotes are mundane in this project's context and have no political intention or design.

4.3.2 Coolors and Accessibility ✅

Color Matching Service: Coolors.com

4.3.2.1 Palette Variations: Shades ✅

4.3.2.2 Palette Contrast ✅

All Palate Pairs Accessible Pairs

4.3.2.3 Chosen Colors ✅


::


5.0 Build ✅

Complete: ✅ 24/01/23

5.1 IDE & Environments ✅

5.1.1 IDE Plugins


5.2 AI Agents & Services ✅

AUTHORS NOTE: AI Assistance is here to stay, as a developer tool. The author it is as random as a fellow human in the quality of the output based on it level of skill/domain it knows; as well as the quality of the prompt/input by the author-developer. It can be super helpful if the knowledge is a known problem domain. It can super mis-leading is the domain is an unknown or unfamiliar issue/concept. Any code here submitted is by the developers own submission, and with probably assisted by the AI Agent, and well tested to be working by the author's own experience and hard effort/man-hours.


5.3 Libraries & Frameworks ✅

5.3.1 npm Tooling

See package.json for full list of dependencies

Dependencies
devDependencies

See package.json for updated versions. These stated version are only indicative, as NPM install has been run regularly from first draft.


5.4 Repository & Hosting ✅

5.4.1 Repository (Version Source Control) ✅

5.4.2 Apps (Code Integration & Deployment) ✅


::


6.0 Code ✅

Complete: ✅ 24/01/23

6.0.1 Version Control ✅

6.0.1.1 Keep a Changelog

A changelog is a file, which contains a curated, chronologically ordered list of notable changes for each version of a project.

6.0.1.2 Conventional Commits

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.

6.0.1.3 SemVer Versioning)

“Semantic Versioning.” Under this scheme, version numbers and the way they change convey meaning about the underlying code and what has been modified from one version to the next.

6.0.1.4 Custom Descriptive Commits
type (optional scope): <description>

<optional body>
Intent:
Issue:
Fixed:
Tag:
Sprint:    01: Ends 23-mm-dd

<keepachangelog>
Bump:
Previous:  23-mm-dd v00.00.01.003
Changelog: 23-mm-dd v00.00.01.004
- add:
- modified:
- removed:
- fixed:
- linted:
- edits:
- deploy:

<optional footer>
Refs:
-

6.0.2 Code Structure ✅

6.0.2.1 Design Patterns: Code Organisation ✅

6.0.3 Code Style ✅

6.0.3.1 Style Guides

6.0.3.2 Clean Code

6.0.4 Project Structure ✅

6.0.5 Planned Repository Structure ✅

📁: Project
 ├── 📁 .github
 |     ├── 📁 ISSUE_TEMPLATE
 |     ├── 📁 PULL_REQUEST
 |     ├── 📄 dependabot.yml
 ├── 📁 .run
 ├── 📁 node_modules
 ├── 📁 refs
 |     ├── 📁 assets
 |     |    ├── 📁 images
 |     ├── 📁 decisions
 |     ├── 📁 design
 |     ├── 📁 features
 |     ├── 📁 acceptance
 |     ├── 📁 deployment
 ├── 📁 src
 |    ├── 📁 assets
 |    |    ├── 📁 css
 |    |    ├── 📁 fonts
 |    |    ├── 📁 img
 |    |    |__ 📁 js
 |   ====================
 ├── 📄 index.html
 |   ====================
 ├── 📄 README.md
 ├── 📄 AUTHORS
 ├── 📄 CITATION
 ├── 📄 CODEOWNERS
 ├── 📄 CODE_OF_CONDUCT.md
 ├── 📄 LICENSE
 |   ====================
 ├── 📄 .gitattributes
 ├── 📄 .gitignore
 |   ====================
 ├── 📄 .editorconfig
 ├── 📄 .eslintrc.json
 ├── 📄 .htmlhintrc
 ├── 📄 .live-server.json
 ├── 📄 .jshintrc
 ├── 📄 .prettierrc.yaml
 ├── 📄 .prettierignore
 ├── 📄 .pre-commit-config.yaml
 ├── 📄 .stylelintrc.json
 ├── 📄 .tailwinorder
 ├── 📄 gitleaks.toml
 ├── 📄 postcss.config.js
 ├── 📄 tailwind.config.js
 |   ====================
 ├── 📄 package.json
 ├── 📄 package-lock.json
 ├── 📄 piecesdb.json

KEY: 📁: Folder , 📄: File , ├── Link: Subdirectory, Linked File, | - Link Generic



6.1 HTML ✅

6.1.1 Linting / Static Code Analysis: htmlHint

6.1.2 HTML W3C Validation ✅


6.2 CSS ✅

6.2.1 CSS Libraries & Frameworks ✅

6.2.2 Linting: StyleLint

6.2.3 CSS W3C Validation ✅


6.3 JavaScript ✅

6.3.1 JS Libraries & Frameworks ✅

6.3.2 JS Linting ✅

Read More: 4 options to help you get started linting your JavaScript - LogRocket Blog

JSHint Ignore Pragma

The use of // jshint ignore:line indicates a code hotspot for code quality by JSHint standards, but elected to ignore. Below is a record summary of these code hotspots.

JetBrains NoInspections

The use of // noinspections indicates a code hotspot for code quality by JetBrain Webstorm IDE code styles, but elected to ignore.


::


7.0 Logic & Code Flow ✅

Complete: ✅ 24/01/23

7.1 Mermaid: Code Flow: Logic.JS: GameLogic Class

What follows is a series of Mermaid Flowchart of the game logic class tracking the method calls, and key returns objects. The class GameLogic acts as like a server / backend to the Game of Tic Tac Toe.

Question: Why This Design

  1. Could a simpler design be used, most definitely.
  2. Dies ot my 20 year old bias for OOP and class based design, I fall into a cognitive/design bias for OOP and Classes based on my prior knowledge of Java, C# and other back end technologies.
  3. However, after man-hours of effort, I was committed to this design.
  4. In future versions, would I choose this approach. No
  5. Does it showcase my skills and coding techniques, Yes.
  6. I get to play with Mermaid as a text to diagram documentation skill.
Select Cell, Click & Move Validity
flowchart TD
    A[Select] -->|F: _whoWins| B(_hasValidMove)
    B --> C{If Invalid}
    C -->|TRUE| D[Has Invalid State]
    D-->C
    C-->|RETURN:Invalid Result|X1(this._result)
    X1-->|RESULT|B
    C -->|FALSE| E[Is Not Invalid\nValid Move]
    E -->|RESULT| B
    B-->|RESULT: Outcome|A
Valid Moves: Who Wins & Make Turns

Make Turns: Turn Flags, Update Turns Data & Increment Turns/Swap Players

Check For Win: Outcome, Sequence Match, Declare Winner

Check Game State Outcomes, with Winning Sequence

8.0 Test & Quality ✅

Complete: ✅ 24/01/23

8.1 Code Quality & Validation ✅

8.1.1 HTML ✅

Version: 23.11.28

Page URI Slug Validation Type Issue Resolved
Page index.html Info Info: Trailing slash on void elements Yes, removed, 24-01-22
External index.html, line 120 Warning Warning: The type attribute is unnecessary for JavaScript resources Kept, Ignored, as current Browsers DevTools showed warnings on Mime Type
External index.html, line 121 Warning Warning: The type attribute is unnecessary for JavaScript resources Kept, Ignored, as current Browsers DevTools showed warnings on Mime Type
External index.html, line 122 Warning Warning: The type attribute is unnecessary for JavaScript resources Kept, Ignored, as current Browsers DevTools showed warnings on Mime Type
External index.html, line 123 Warning Warning: The type attribute is unnecessary for JavaScript resources Kept, Ignored, as current Browsers DevTools showed warnings on Mime Type
External index.html, line 124 Warning Warning: The type attribute is unnecessary for JavaScript resources Kept, Ignored, as current Browsers DevTools showed warnings on Mime Type

8.1.2 CSS ✅

AUTHOR NOTE: TailwindCSS auto generates CSS via JS and may output non-compliant CSS, or modern variants of CSS that the CSS Jigsaw engine may not be up-to-date. So any errors listed here are only a guide, and errors from Tailwinds generated CSS are out of scope. If the CSS displays; and the feature is styled, so be it.

Listed CSS issues here are author-generated as the author has little control over output CSS from TailwindCSS.

8.1.2. Tailwind Styles ✅

Source: https://ipoetdev.github.io/MiniTicTacToe/src/assets/css/tw-style.css Auto Generated

ERRORS (60) ✅

![](refs/assets/img/9-1-2.1_W3C-CSS-Tailwind Errors.png) ![](refs/assets/img/9-1-2.1_W3C-CSS-Tailwind Errors2.png) 60 Errors: CSS Jigsaw Parse/System Error

WARNING (23) ✅

![](refs/assets/img/9-1-2.1_W3C-CSS-Tailwind Warnings.png)


8.2 Bugs & Issues ⛔

This project used GitHub Issues to track, triage and describe project and code level bugs.

::


9.0 Features & User Acceptance ✅

Complete: ❓ | Review: 📝 | To Do: 📌

  • Is a mirror of section 3.3 Milestones in User Experience: But with the User Acceptance Completed
  • User Acceptance using then Given...When...Then of Behavioral Drive Testing and Agile Planning.

9.1 Features & User Acceptance ✅

9.1.1 Game Brand: Purpose and Context

✅ Feature: App Branding & Brand Identity:
  - ⛔ Icon: None, Future Version
  - Title/Text: Mini Tic Tac Toe, in a cursive hand written script
  - Color: See 4.3.2 for colors, theme is dark blue grey/gunmetal/indigo
  - Whitespacing: Minimalist in style: few component
  - Dark Mode: Yes
✅ Is Part Of: Web Page
Version: 2.0.1.11
✅ Benefit:
  - Implies and imparts the game's intent and context implicitly.
  - A good Brand Identity allows for an emotional and logical connection as to the design ethos of the App.
  - A strong brand allows for quick recognition of the game's purpose and intuitive informational clues to how the game is played.
9.1.1.1 Acceptance: ✅

9.1.2 Game Banner: ✅

✅ Feature: The Game Banner is the page container that is composed of :
  - Game Title
  - ByLine:
    - Link to User Profile
    - Link to Project Repository on GitHub.com
✅ Is Part of: Web Page
Version: 2.0.1.11
✅ Benefit:
  - Allows for brand identity (a Title/Heading/Icon) positioning.
  - Allows for positioning simple in-game controls (like toggles) to control game options.
9.1.2.1 Acceptance: ✅

9.1.3 Game Title

✅ Feature: The Game Title is the page element that is composed of :
  - Logo Heading: Mini Tic Tac Toe
✅ Is Part of: Game Brand
Version: 2.0.1.11
✅ Benefit:
  - Allows for brand identity (a Title/Heading) positioning.
  - Applying brand style and theming. See colors and fonts in section 4.0
9.1.3.1 Acceptance: ✅

9.1.4 Game Controls

✅ Feature:
  - Grid Cell Button x9: Receives the users click, to start the game and make each turn, as display the outcome of each turn
  - Reset Button: Rest the GameLogic engine AND the Game UI
  - Help Button: To Open the Game FAQ Modal/Pop Up
  - Close Buttons x2: To Close the Game FAQ Modal/Pop Up
✅ Version:
✅ Benefit:
  - Essential initiators of user interaction.
  - Additional surface for UI visuals and interactivity when user points a cursor
  - Display outcome of the user selection.
  - Show/hide hidden context/surfaces for additional contextual information
9.1.4.1 Acceptance: ✅

9.1.5 Game Board

✅ Feature:
  - 3 Rows of 3 grid Cells,each with an id of cell-id-{i} where i: 0>= i <=8
  - Each Cell is made up of Button for user interaction, event handling and action outcome, as well as animation effects.
✅ Version:
✅ Benefit:
  - Use of buttons, which are natural event handlers for interactions, simplifies good design and implementation for each user selection
9.1.5.1 Acceptance: ✅

9.1.6 Game Messages

✅ Feature:
  A) Feedback on the game outcome
  - Update the Outcome button at top of Game Area
  - Default ot `No Result`
  - Possible Outcome messages:
    1. Winner of X Round is X i.e. X is the number of rounds
    2. Winner of X Round is O
    3. ⛔ The game is a Draw (not yet finalised).
  B) Visuals from the interaction
    - Tokens bounce in animation
    - The selected grid panels on selection, in focus, when active, also animate per grid cell
✅ Version:
✅ Benefit:
   - Provides signals to the user that they:
     1) Have made their turn
     2) Have reached the end of the game
     3) ⛔ To have made an illegal/bad move (Not yet implemented)
9.1.1.1 Acceptance: ✅

9.1.6 Game FAQ: ? Help

✅ Feature: A Pop out help panel that
  - Informs of History fo the game with links to Wikipedia.
  - How the game is played convention.
  - How the current version of the game is to be played.
  - The current limitations, bugs, issues withe the game.
  - The future improvements scheduled on the roadmap.
✅ Version:
✅ Benefit:
  - Provides contextual and game instruction awareness to target audiences
  - Inform openly and transparent the bugs and limitations to the assessor/code reviewer for assessment/evaluation purposes.
9.1.6.1 Acceptance: ✅


9.2 Screenshots & Responsive Design ✅

9.2.1 iPhone

9.2.2 iPad Pro 9.7 Portrait

9.2.3 iPad Pro 9.7 Landscape

9.2.4 Desktop Wide

9.2.5 Desktop HD 1440px Wide


::


10.0 Deployment ✅✅

Complete: ✅ 24/01/22

10.1 Deployment Strategy ✅

Notes on the above:

Regular pushes to trunk branches, and then pull into to main and finally to deploy/* branches.

10.2 Deployment Configuration ✅

10.3 Deployment Environments ✅

Example Deployment from GitHub.com for GitHub.io in GitHub Environments Dated: 2024/01/22

10.4 GitHub Pages: Live Site ✅

https://ipoetdev.github.io/MiniTicTacToe/

::


11.0 Assessments

Complete: ✅ 24/01/22

AUTHORS NOTE: As this submission is a resit and second attempt, there is not much accreditation to be made here.

11.1 Credits

11.2 External Sources

11.2.A: AI

Fir each of the following services, I have a record od stored prompts and responses for inspection if so called upon.

11.2.2: Prior Submissions


::