Some checks failed
Static App CI / sanity-checks (push) Has been cancelled
Conway's Game of Life
A simple implementation of Conway's Game of Life, built with vanilla JS and a canvas element.
Features
- Play/pause, step one generation, clear, randomize
- Draw or erase cells by clicking and dragging
- Speed and zoom sliders
- Preset patterns: block, blinker, toad, beacon, glider, LWSS, pulsar, Gosper glider gun
- Fixed edges or toroidal wrapping
- Grid toggle, generation counter, live-cell counter
- Import/export board as JSON or compact text
- Dark/light theme
- Keyboard shortcuts
Running locally
No build step, just static files.
git clone https://gitea.nalakath.org/aman/conways-game-of-life.git
cd conways-game-of-life
python3 -m http.server 8080
Open http://localhost:8080.
Deploying (WIP)
Nginx / Caddy, serving the repo directly
server {
listen 80;
server_name life.example.com;
root /srv/www/conway_gameoflife;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
life.example.com {
root * /srv/www/conway_gameoflife
file_server
try_files {path} /index.html
}
Gitea Actions, copying files to a server path or object storage. There's a basic ci.yml in .gitea/workflows/ that checks required files exist and that the JS is syntactically valid. Extend it for your own deploy target.
All paths are relative (./style.css, ./js/app.js), so it works at the domain root or under a subpath like /apps/life/. Keep index.html, style.css, and js/ together.
Ideas for later
- Infinite canvas with panning
- Better touch controls for mobile
- Rotate/mirror patterns before stamping
Description
Languages
JavaScript
70.4%
HTML
16.9%
CSS
12.7%