<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> <title>game of life</title> <style> body { /* position: absolute; */ top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f0f0f0; } h1 { font-family: monospace; } </style> </head> <body> <div class="card container text-center p-4 m-3"> <div class="card-header"> <h1>Game of Life 🚀</h1> </div> <div class="card-body"> <div class="row p-1"> <div class="col-sm-12"> <p class="text-muted">An implementation of the standard <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway Game of Life</a>. The game logic is written in WASM-targeted Rust with a light Js frontend. Read through the source code <a href="https://github.com/Sarsoo/game-of-life">here</a>. It was written following the guides in the <a href="https://rustwasm.github.io/docs/book">Rust & WebAssembly book</a>.</p> </div> </div> <div class="row p-3"> <div class="col-sm-6"> <input type="range" id="frameRate" name="frameRate" min="1" max="500" value="100" class="form-range"> <label for="frameRate" id="frameRate-label" class="form-label">Frame Interval: 100ms</label> </div> <div class="col-sm-6"> <input type="range" id="randThreshold" name="randThreshold" min="0" max="100" value="50" class="form-range"> <label for="randThreshold" id="randThreshold-label" class="form-label">Random Threshold: 50%</label> </div> </div> <div class="row p-3"> <div class="col-sm-6"> <input type="number" id="width" name="width" min="1" max="1000" value="100" class="form-control"> <label for="width">width</label> </div> <div class="col-sm-6"> <input type="number" id="height" name="height" min="1" max="1000" value="100" class="form-control"> <label for="height">height</label> </div> </div> <div class="row p-3 align-items-center"> <div class="col-sm-6"> <!-- <input type="checkbox" id="play-check" name="play-check" class="form-check-input"> <label for="play-check">Play</label> --> <button id="play" class="btn btn-success">Play</button> </div> <div class="col-sm-6"> <div class="row p-1"> <button id="step" class="btn btn-secondary">Step</button> </div> <div class="row p-1"> <button id="reset" class="btn btn-secondary">Reset</button> </div> </div> </div> </div> </div> <!-- <pre id="game-of-life-canvas"></pre> --> <canvas id="game-of-life-canvas" class="pb-2"></canvas> <script src="./bootstrap.js"></script> <a href="https://github.com/sarsoo"><img src="https://storage.googleapis.com/sarsooxyzstatic/andy.png" class=" pb-2" style="width: 150px" /></a> </body> </html>