Jez Milledge

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
© 2021 — Jeremy Milledge