Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/j-winston/javascript-tic-tac-toe

Minimalist Tic-Tac-Toe
https://github.com/j-winston/javascript-tic-tac-toe

Last synced: 7 days ago
JSON representation

Minimalist Tic-Tac-Toe

Awesome Lists containing this project

README

        

# Minimalist Tic-Tac-Toe in Javascript
A Javascript version of the game that no one actually ever wins.
---

## Table of Contents
---
* Try It Out
* Introduction
* Technologies
* Features
* Inspiration
* Screenshots

### Try It Out
---
[Play it here](https://j-winston.github.io/Javascript-Tic-Tac-Toe/)

### Introduction
---
This project was really an opportunity to try and separate view from data in javascript. I really wanted to work on
taming the dumpster fire programs that result from trying to do everything from the DOM. Instead, I aimed to create
a solid foundation of code that worked without, and independently of, the DOM.

### Technologies
---
HTML/CSS/Javascript

### Features
---
* Readable, and modular code can be extended rather easily
* All modules except one are completely blind to each other
* Code skeleton could function without any DOM references

### Inspiration
---
My inspiration was this article by Alex Younger on the consquences of interacting with the DOM too freely. ["Building a House from the Inside Out](https://www.ayweb.dev/blog/building-a-house-from-the-inside-out).
It totally resonated with me, and that's because I've been guilty as sin of doing it, as Javascript makes it too easy. This time I wanted to literally create from the inside out.

What really got me on this project was game flow--dealing with event driven nature of Javascript. Instead of promises, I wanted to use the old-school callback methods
to challenge myself. This was surprisingly challenging and can easily result in code that is hard to follow, though I did learn some nice naming conventions along the way ie 'onSubmit'

### Screenshots
---
![Selection_002](https://user-images.githubusercontent.com/102254727/224761566-a02b7b3d-ce73-4164-8e81-515f2a950cdc.png)
![Selection_003](https://user-images.githubusercontent.com/102254727/224761567-3ea8534e-b6c7-4b94-ac80-4f21ecbcf109.png)
![Selection_004](https://user-images.githubusercontent.com/102254727/224761572-70d471a9-cba0-4cec-9693-ac46aeda75a2.png)
![Selection_005](https://user-images.githubusercontent.com/102254727/224761573-65f68f1c-d519-4f68-957c-91d9e49487fa.png)