Files
NeuralNetworkLib/src/NeuralNetwork/ConstructiveAlgorithms/CellularEncoding/CellularEncoding.cpp
2016-05-18 22:57:06 +02:00

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;
}