diff --git a/lab1/CellularAutomaton.cpp b/lab1/CellularAutomaton.cpp index 6cee99b..006063a 100644 --- a/lab1/CellularAutomaton.cpp +++ b/lab1/CellularAutomaton.cpp @@ -1,12 +1,12 @@ #include "CellularAutomaton.h" -CellularAutomaton::CellularAutomaton(int width, int height) : m_fieldWidth(width), m_fieldHeight(height) +CellularAutomaton::CellularAutomaton(int width, int height, bool fillWithRandom) : m_fieldWidth(width), m_fieldHeight(height) { field.resize(m_fieldHeight, std::vector(m_fieldWidth, 0)); fieldNextState.resize(m_fieldHeight, std::vector(m_fieldWidth, 0)); - //initializeRandom(); - initializeManual(); + if (fillWithRandom) initializeRandom(); + else initializeManual(); } diff --git a/lab1/CellularAutomaton.h b/lab1/CellularAutomaton.h index 1e8726e..5abd91c 100644 --- a/lab1/CellularAutomaton.h +++ b/lab1/CellularAutomaton.h @@ -19,7 +19,7 @@ class CellularAutomaton int getCellState(int x, int y) const; int getNeighborhoodIndex(int x, int y) const; public: - CellularAutomaton(int width, int height); + CellularAutomaton(int width, int height, bool fillWithRandom); void update(); void displayField() const; diff --git a/lab1/lab1.cpp b/lab1/lab1.cpp index 2f0b986..705fa7b 100644 --- a/lab1/lab1.cpp +++ b/lab1/lab1.cpp @@ -40,9 +40,11 @@ int main() cout << "Укажите количество итераций (min 1): "; int iterationsCount = inputNumber(1); - clear(); + cout << "Заполнить поле случайными значениями? (yes/no)\n"; + bool fillWithRandom = userApprove(); - CellularAutomaton ca(fieldWidth, fieldHeight); + CellularAutomaton ca(fieldWidth, fieldHeight, fillWithRandom); + clear(); std::cout << "\nИтерация 0:\n"; ca.displayField();