Add age count, x and y in process(), and :s/framework/library

This commit is contained in:
Riley Shaw 2014-09-02 02:22:39 -07:00
parent d394f3caa3
commit 5f659888a3
5 changed files with 10 additions and 7 deletions

View File

@ -1,7 +1,7 @@
terra terra
===== =====
JS framework for cellular automata and simple biological simulations. Documentation and examples live [here](http://rileyjshaw.com/terra/). JS library for cellular automata and simple biological simulations. Documentation and examples live [here](http://rileyjshaw.com/terra/).
## Hacking this library ## Hacking this library
To build terra on your machine you'll need [Node.js](http://nodejs.org/), [Bower](http://bower.io/), and [gulp](http://gulpjs.com/) installed. Then... To build terra on your machine you'll need [Node.js](http://nodejs.org/), [Bower](http://bower.io/), and [gulp](http://gulpjs.com/) installed. Then...

View File

@ -5,7 +5,9 @@ var factory = (function () {
function baseCreature() { function baseCreature() {
this.age = 0; this.age = 0;
} }
function baseCA() {} function baseCA() {
this.age = 0;
}
baseCreature.prototype.initialEnergy = 50; baseCreature.prototype.initialEnergy = 50;
baseCreature.prototype.maxEnergy = 100; baseCreature.prototype.maxEnergy = 100;
@ -96,7 +98,7 @@ var factory = (function () {
return true; return true;
}; };
baseCreature.prototype.process = function (neighbors) { baseCreature.prototype.process = function (neighbors, x, y) {
var step = {}; var step = {};
var maxEnergy = this.maxEnergy; var maxEnergy = this.maxEnergy;
@ -122,7 +124,7 @@ var factory = (function () {
baseCA.prototype.boundEnergy = function () {}; baseCA.prototype.boundEnergy = function () {};
baseCA.prototype.isDead = function () { return false; }; baseCA.prototype.isDead = function () { return false; };
baseCA.prototype.process = function (neighbors) {}; baseCA.prototype.process = function (neighbors, x, y) {};
baseCA.prototype.wait = function () {}; baseCA.prototype.wait = function () {};
// Storage for our creature types // Storage for our creature types

View File

@ -67,6 +67,7 @@ Terrarium.prototype.step = function (steps) {
function copyAndRemoveInner (origCreature) { function copyAndRemoveInner (origCreature) {
if (origCreature) { if (origCreature) {
var copy = _.assign(new (origCreature.constructor)(), origCreature); var copy = _.assign(new (origCreature.constructor)(), origCreature);
copy.age++;
return copy && !copy.isDead() ? copy : false; return copy && !copy.isDead() ? copy : false;
} else return false; } else return false;
} }
@ -99,7 +100,7 @@ Terrarium.prototype.step = function (steps) {
_.getNeighborCoords(x, y, gridWidth - 1, gridHeight - 1, creature.actionRadius), _.getNeighborCoords(x, y, gridWidth - 1, gridHeight - 1, creature.actionRadius),
zipCoordsWithNeighbors zipCoordsWithNeighbors
); );
var result = creature.process(neighbors); var result = creature.process(neighbors, x, y);
if (result) { if (result) {
var eigenColumn = eigenGrid[result.x]; var eigenColumn = eigenGrid[result.x];
if (!eigenColumn[result.y]) eigenColumn[result.y] = []; if (!eigenColumn[result.y]) eigenColumn[result.y] = [];

View File

@ -5,7 +5,7 @@
"authors": [ "authors": [
"rileyjshaw <i@rileyjshaw.com>" "rileyjshaw <i@rileyjshaw.com>"
], ],
"description": "A JavaScript framework for simple biological simulations and cellular automata.", "description": "A JavaScript library for simple biological simulations and cellular automata.",
"main": "dist/terra.min.js", "main": "dist/terra.min.js",
"moduleType": [ "moduleType": [
"node" "node"

View File

@ -1,7 +1,7 @@
{ {
"name": "terra", "name": "terra",
"version": "1.0.0-beta", "version": "1.0.0-beta",
"description": "A JavaScript framework for simple biological simulations and cellular automata.", "description": "A JavaScript library for simple biological simulations and cellular automata.",
"main": "dist/terra.min.js", "main": "dist/terra.min.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"