Vanilla JavaScript - CSS Grid/Flexbox
This project was the first of the General Assembly Software Immersive. My focus was to create a simply styled responsive game that performs well, is highly accessible, and uses versatile game logic for any board size. It scores 100/100 for Chrome Lighthouse Accessibility, Performance, and Best Practices on both desktop and mobile:
My design objectives beyond the task requirements:
- Fully responsive
- Utilise modern CSS display methods (grid + flexbox), water.css for base styling.
- No third party JS dependencies: focus on DOM manipulation with Vanilla JS only
- Highly readable text
- Clear interactive elements and cues
- Adjustable 3x3 up to n x n board size
- Option for human versus computer mode - procedural AI unbeatable for 3x3, passable for n x n. Computer logic is logged to console.
- Separation of AI, UI and game logic scripts
- Tastefully commented code (attempted)
- Regular and meaningful commits
- Adheres to DRY principle