Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 87 additions & 18 deletions gameOfLife.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@
font-family: Monospace;
background-color: #f0f0f0;
margin: 0px;
padding: 10px;
padding: 10px;
}

.controls-block {
padding: 20px;
}
</style>
</head>
Expand All @@ -38,23 +42,88 @@ <h1>Conway's Game Of Life... Now in 3D!</h1>
</p>
<div id="gameoflife" style="border:1px solid #CCCCCC; margin:20px;"></div>
<div id="controls">
Map size:
<select name="size" id="size">
<option value="10">Tiny (1000 cells)</option>
<option value="20">Small (8000 cells)</option>
<option value="25">Medium (15625 cells)</option>
<option value="30">Big (27000 cells)*</option>
<option value="50">Massive (125000 cells)*</option>
</select>
Speed:
<select name="speed" id="speed">
<option value="1000">Slow (1 generation/second)</option>
<option value="500">Medium (2 generations/second)</option>
<option value="100">Fast (10 generations/second)</option>
<option value="50">Hyper (20 generations/second)</option>
</select>
<input type="button" id="pause" value="Stop" />
<input type="button" id="reset" value="Randomize/Reset" />
<div class="controls-block">
Map size:
<select name="size" id="size">
<option value="10">Tiny (1000 cells)</option>
<option value="20">Small (8000 cells)</option>
<option value="25">Medium (15625 cells)</option>
<option value="30">Big (27000 cells)*</option>
<option value="50">Massive (125000 cells)*</option>
</select>
</div>
<div class="controls-block">
Speed:
<select name="speed" id="speed">
<option value="1000">Slow (1 generation/second)</option>
<option value="500">Medium (2 generations/second)</option>
<option value="100">Fast (10 generations/second)</option>
<option value="50">Hyper (20 generations/second)</option>
</select>
</div>
<div class="controls-block">
Death Threshold:
<select name="lonely" id="lonely">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="1">13</option>
<option value="1">14</option>
<option value="1">15</option>
<option value="1">16</option>
</select>
Breed Threshold:
<select name="breed" id="breed">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="1">13</option>
<option value="1">14</option>
<option value="1">15</option>
<option value="1">16</option>
</select>
Overcrowd Threshold:
<select name="overcrowd" id="overcrowd">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8" selected="selected">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="1">13</option>
<option value="1">14</option>
<option value="1">15</option>
<option value="1">16</option>
</select>
</div>
<div class="controls-block">
<input type="button" id="pause" value="Stop" />
<input type="button" id="reset" value="Randomize/Reset" />
</div>
</div>
<p>
This was a fun experiment, created by <a href="http://www.samuellevy.com/">Samuel Levy</a>.
Expand Down
11 changes: 2 additions & 9 deletions gameoflife.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,6 @@ Grid = function() {
cube_h:Math.floor(HEIGHT/this.y),
cube_d:Math.floor(400/this.z),

// thresholds
th : {
lonely: 1,
breed: 5,
overcrowd: 8
},

// the actual map
map: [],

Expand Down Expand Up @@ -141,7 +134,7 @@ Grid = function() {
// transpose
if (cell) {
// is the cell lonely or overcrowded?
if (n <= this.th.lonely || n >= this.th.overcrowd) {
if (n <= $('#lonely').val() || n >= $('#overcrowd').val()) {
// kill the cell off
scene.remove(cell);
} else {
Expand All @@ -150,7 +143,7 @@ Grid = function() {
}
} else {
// check if we're in the breed threshold
if (n == this.th.breed) {
if (n == $('#breed').val()) {
var newcell = this.add_cell(i,j,k);

if (newcell) {
Expand Down