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."
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
Simple Goals, bullets points
Complete: ✅ 24/01/22
For specific solution and user goals, see 2.0 Solution and 4.0 User Experience sections below.
Complete: ✅ 24/01/22
README.md
.
Complete: ✅ 24/01/22
Name | Website | Repo Name | Repo URL |
---|---|---|---|
Project |
https://ipoetdev.github.io/MiniTicTacToe/ | Repo |
https://github.com/iPoetDev/MiniTicTacToe |
amiresponsive.co.uk/ | URI: AmIResponsive
::
Tic Tac Toe
- A Grid Game 🚧✅Complete: ✅ | Review: ❓
X
is played first.Example GamePlay
: Wikipedia.com (1)
X
first move.BLUE
marker, i.e. item or game token,RED
marker, i.e. item or game token.Time Limits
is a potential feature (Credit: Tic Tac Toe Web Browser Gameplay) (3)Winning Options: 3 indices in a row
2n+1
sets is a match.Scoring
: is a potential feature. Credit: Tic Tac Toe Web Browser Gameplay) (3)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
For versions beyond version 2.0 / Alpha
Time Limits
is a potential featureScoring
: is a potential feature.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.
watch.js
of the game's result object in the global scope.::
Complete: ✅ 24/01/23
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.
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.
✅ 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:
? 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.
Acceptance:
- 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
Beginners Features | Objective | Tasks
Intermediate Features | Objective | Tasks
2n + 1
matches against my opponent.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
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
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.
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.
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 | --- | --- |
::
::
Complete: ❓ | Review: 📝 | To Do: 📌
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
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.
Desktop Wide Landscape 1366 x 768 | Notes |
---|---|
13 Inch Laptop | |
Desktop HD Landscape 1440 x 900 | Notes |
... |
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 |
---|---|
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 |
---|---|
.... |
index.html
? Help
.ttf
to web safe variants i.e. .WOFF
, .WOFF2
URL: Converter
: https://transfonter.org/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.
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 |
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.
Color Matching Service: Coolors.com
All Palate Pairs | Accessible Pairs |
---|---|
::
Complete: ✅ 24/01/23
Windows 22H2
: version 11.0.22621.2715
- WindowsGit
: version 2.42
- GitNodist/Node
: version 20.10.0
- NodeNodeist/NPM
: version 9.8.1
- NPMJetBrains | WebStorm
: version 2023.2.3
- JetBrains WebStormsSonarLint
- SonarLintBrowserlist
- BrowserlistTailwind CSS
- Tailwind CSSW3C Validation
- W3C ValidationAUTHORS 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.
Perplexity AI
: version 1.0.0
- Perplexity AI
JetBrains AI Assistant
: version 233.11799.196
- AI Assistant:
See
package.json
for full list of dependencies
tailwindcss
:
version 3.3.3
- tailwindcss
autoprefixer
: version 10.4.16
- autoprefixerpostcss
: version 8.4.31
- postcssSee package.json for updated versions. These stated version are only indicative, as
NPM install
has been run regularly from first draft.
editorconfig
: version 2.0.0
- editorconfigeslint
: version 8.51.0
- eslint
eslint-config-defaults
:
version 9.0.0
- eslint-config-defaultseslint-config-prettier]
:
version 9.0.0
- eslint-config-prettiereslint-config-semistandard
:
version 17.0.0
- eslint-config-semistandardeslint-config-standard
:
version 17.1.0
- eslint-config-standardeslint-import-resolver-node
:
version 0.3.9
- eslint-import-resolver-nodeeslint-module-utils
:
version 2.8.0
- eslint-config-defaultseslint-plugin-import
:
version 2.28.1
- eslint-plugin-importeslint-plugin-security
:
version 1.7.1
- eslint-plugin-securityeslint-eslint-scope
:
version 7.2.2
- eslint-scopeeslint-utils
:
version 3.0.0
- eslint-utilshtmlhint
: version 1.1.4
- htmlhintlive-server
: version 1.2.1
- live-serverlocal-web-server
: version 1.0.0
- local-web-serverprettier
: version 3.0.3
- prettier
prettier-plugin-django-alpine
: version 1.2.6
- prettier-plugin-django-alpineprettier-plugin-tailwind
: version 0.5.6
- prettier-plugin-tailwindcssstandard
: version 17.1.0
- standard
snazzy
: version 9.0.0
- snazzystylelint
: version 15.10.3
- stylelint
stylelint-config-standard
:
version 34.0.0
- stylelint-config-standardstylelint-config-recommended
:
version 13.0.0
- stylelint-config-standardstylelint-config-tailwindcss
:
version 0.0.7
- stylelint-config-tailwindcssstylelint-csstree-validator
:
version 3.0.0
- stylelint-csstree-validatorGitHub.com
: Github Respoistory
GitHub.io
: Github Pages
Dependabot Preview
: GitHub: Dependabot - DependabotGitLive
: [GitHub Marketplace: GitLive](https://github.com/marketplace/teamhub - GitLiveGitHub Actions
: GitHub Marketplace: IssueLabeler - IssueLabeler by riyadhalnur : ProbotSupershields
: GitHub Marketplace: Supershields.io - Supershields.ioWakatime
: GitHub Marketplace: Wakatime - Wakatime::
Complete: ✅ 24/01/23
A changelog is a file, which contains a curated, chronologically ordered list of notable changes for each version of a project.
All notable changes to this project will be documented in this file.
To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.
People do. Whether consumers or developers, the end users of software are human beings who care about what's in the software. When the software changes, people want to know why and how.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[X] Keep a ChangeLog
: version 1.0.0
- Keep a ChangeLog
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.
Conventional Commits
: version 1.0.0
- Conventional Commits“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.
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.3.1 Style Guides
HTML
: _HTML Style Guide
_ - HTML Style GuideCSS
: _CSS Style Guide
_ - CSS Style GuideJavaScript
: _JavaScript Style Guide
_ - JavaScript Style Guide6.0.3.2 Clean Code ✅
Clean Code Characteristics
: Project requirements for code quality and standards.
Code Readability and Maintainability
:
Code Formating
: The Clean Code Characteristic enforced by and (actions on save):
Code Linting
: The Clean Code Characteristic enforced by:
Project Templates
: GitHub allows for each repository to be used as templates for new projects.
Directory Structure
is defined in the repository template.Issue & Pull Request Templates
are defined in the repository template in the .github
directory.File Structure
is defined in the repository template.Grouping by File Types
: e.g. assets directory will group related file types via subdirectories.Grouping by Libraries & Frameworks
: e.g. node_modules
directory will group related file types via subdirectories. Though node_modules
are not always pushed the remote repository.Grouping by Features
: e.g. components
directory will group related file types via subdirectories.📁: 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
HTML5
: v5.0
htmlHint
✅StyleLint
✅StyleLint
v15.11.0
:
JavaScript
vEC6
: ECMAScrip 2015 - ECMAScript 2020.
Read More: 4 options to help you get started linting your JavaScript - LogRocket Blog
esLint
: v8.55.0
standardJS
: v
JsHint
: v2.13.6
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.
logic.js
(Fixing or Ignore 122 issues, JSHint by NPM)
logging.js
: 2024/01/22watch.js
: 2024/01/22ui1.js
: 2024/01/22onloadinit.js
: 2024/01/22The use of // noinspections
indicates a code hotspot for code quality by JetBrain Webstorm IDE code styles, but elected to ignore.
::
Complete: ✅ 24/01/23
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
- Could a simpler design be used, most definitely.
- 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.
- However, after man-hours of effort, I was committed to this design.
- In future versions, would I choose this approach. No
- Does it showcase my skills and coding techniques, Yes.
- I get to play with Mermaid as a text to diagram documentation skill.
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
Complete: ✅ 24/01/23
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 |
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.
Source: https://ipoetdev.github.io/MiniTicTacToe/src/assets/css/tw-style.css Auto Generated
![](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
*, ::before, ::after
::backdrop
![](refs/assets/img/9-1-2.1_W3C-CSS-Tailwind Warnings.png)
This project used GitHub Issues to track, triage and describe project and code level bugs.
::
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.
✅ 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.
✅ 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.
✅ 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
✅ 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
✅ 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
✅ 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)
? 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.
::
Complete: ✅ 24/01/22
*/branch-name-vN.M
trunk (1️⃣)main
branch (2️⃣)main
into the deploy/mini_tictactoe
branch (3️⃣)Notes on the above:
/
)/
)MAIN
branch act as a final code review/quality gate (if configured for SonarLint CI and other code review/code quality tools). This is keep light weight for now.Regular pushes to trunk branches, and then pull into to main and finally to deploy/* branches.
deploy/mini_tictactoe
./
or root 📂./src/assets/*
or src 📂 for css/js/fonts/img
Example Deployment from GitHub.com for GitHub.io in GitHub Environments
Dated: 2024/01/22
https://ipoetdev.github.io/MiniTicTacToe/
::
Complete: ✅ 24/01/22
AUTHORS NOTE: As this submission is a resit and second attempt, there is not much accreditation to be made here.
Fir each of the following services, I have a record od stored prompts and responses for inspection if so called upon.
::