Tabs to spaces
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user