diff --git a/src/Organism/RandomOrganismGenerator.js b/src/Organism/RandomOrganismGenerator.js index 3379e6f..da945af 100644 --- a/src/Organism/RandomOrganismGenerator.js +++ b/src/Organism/RandomOrganismGenerator.js @@ -4,70 +4,70 @@ const Brain = require("./Perception/Brain") class RandomOrganismGenerator { - static generate(env) { + static generate(env) { - var center = env.grid_map.getCenter(); - var organism = new Organism(center[0], center[1], env, null); - organism.anatomy.addDefaultCell(CellStates.mouth, 0, 0); + var center = env.grid_map.getCenter(); + var organism = new Organism(center[0], center[1], env, null); + organism.anatomy.addDefaultCell(CellStates.mouth, 0, 0); - var outermostLayer = RandomOrganismGenerator.organismLayers; - var x, y; + var outermostLayer = RandomOrganismGenerator.organismLayers; + var x, y; - // iterate from center to edge of organism - // layer 0 is the central cell of the organism - for (var layer = 1; layer <= outermostLayer; layer++) { + // iterate from center to edge of organism + // layer 0 is the central cell of the organism + for (var layer = 1; layer <= outermostLayer; layer++) { - var someCellSpawned = false; - var spawnChance = RandomOrganismGenerator.cellSpawnChance * 1 - ((layer - 1) / outermostLayer); + var someCellSpawned = false; + var spawnChance = RandomOrganismGenerator.cellSpawnChance * 1 - ((layer - 1) / outermostLayer); - // top - y = -layer; - for (x = -layer; x <= layer; x++) - someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); + // top + y = -layer; + for (x = -layer; x <= layer; x++) + someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); - // bottom - y = layer; - for (x = -layer; x <= layer; x++) - someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); + // bottom + y = layer; + for (x = -layer; x <= layer; x++) + someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); - // left - x = -layer; - for (y = -layer + 1; y <= layer - 1; y++) - someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); + // left + x = -layer; + for (y = -layer + 1; y <= layer - 1; y++) + someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); - // right - x = layer; - for (y = -layer + 1; y < layer - 1; y++) - someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); + // right + x = layer; + for (y = -layer + 1; y < layer - 1; y++) + someCellSpawned = RandomOrganismGenerator.trySpawnCell(organism, x, y, spawnChance); - if (!someCellSpawned) - break; - } + if (!someCellSpawned) + break; + } - // randomize the organism's brain - var decisions = organism.brain.decisions; - decisions[CellStates.empty.name] = Brain.Decision.getRandom(); - decisions[CellStates.food.name] = Brain.Decision.getRandom(); - decisions[CellStates.wall.name] = Brain.Decision.getRandom(); - decisions[CellStates.mouth.name] = Brain.Decision.getRandom(); + // randomize the organism's brain + var decisions = organism.brain.decisions; + decisions[CellStates.empty.name] = Brain.Decision.getRandom(); + decisions[CellStates.food.name] = Brain.Decision.getRandom(); + decisions[CellStates.wall.name] = Brain.Decision.getRandom(); + decisions[CellStates.mouth.name] = Brain.Decision.getRandom(); decisions[CellStates.producer.name] = Brain.Decision.getRandom(); - decisions[CellStates.mover.name] = Brain.Decision.getRandom(); - decisions[CellStates.killer.name] = Brain.Decision.getRandom(); - decisions[CellStates.armor.name] = Brain.Decision.getRandom(); - decisions[CellStates.eye.name] = Brain.Decision.getRandom(); + decisions[CellStates.mover.name] = Brain.Decision.getRandom(); + decisions[CellStates.killer.name] = Brain.Decision.getRandom(); + decisions[CellStates.armor.name] = Brain.Decision.getRandom(); + decisions[CellStates.eye.name] = Brain.Decision.getRandom(); - return organism; - } + return organism; + } - static trySpawnCell(organism, x, y, spawnChance) { + static trySpawnCell(organism, x, y, spawnChance) { - var neighbors = organism.anatomy.getNeighborsOfCell(x, y); - if (neighbors.length && Math.random() < spawnChance) { - organism.anatomy.addRandomizedCell(CellStates.getRandomLivingType(), x, y); - return true; - } - return false; - } + var neighbors = organism.anatomy.getNeighborsOfCell(x, y); + if (neighbors.length && Math.random() < spawnChance) { + organism.anatomy.addRandomizedCell(CellStates.getRandomLivingType(), x, y); + return true; + } + return false; + } }