20 lines
697 B
C++
20 lines
697 B
C++
#include <NeuralNetwork/ConstructiveAlgorithms/CelularEncoding/CelularEncoding.h>
|
|
|
|
std::size_t NeuralNetworks::ConstructiveAlgorithms::CelularEncoding::CelularEncoding::step() {
|
|
std::size_t activeCellCount = 0;
|
|
std::vector<std::size_t> processingOrder(_processingOrder);
|
|
for(std::size_t i = 0; i < processingOrder.size(); i++) {
|
|
std::size_t cell = processingOrder[i];
|
|
if(cells[cell]->isAlive()) {
|
|
currentID = cells[cell]->getID();
|
|
cells[cell]->step(*this);
|
|
activeCellCount++;
|
|
} else {
|
|
auto iter = std::find(_processingOrder.begin(), _processingOrder.end(), cell);
|
|
if(iter != _processingOrder.end()) {
|
|
_processingOrder.erase(iter);
|
|
}
|
|
}
|
|
}
|
|
return activeCellCount;
|
|
} |