diff --git a/Hw6/Archive.zip b/Hw6/Archive.zip new file mode 100644 index 0000000..c670306 Binary files /dev/null and b/Hw6/Archive.zip differ diff --git a/Hw6/LifeSimulator.cpp b/Hw6/LifeSimulator.cpp index a9fe101..5b2a13f 100644 --- a/Hw6/LifeSimulator.cpp +++ b/Hw6/LifeSimulator.cpp @@ -20,7 +20,7 @@ void LifeSimulator::insertPattern(const Pattern& pattern, std::uint8_t startX, s { startX += 1; startY += 1; - std::cout << pattern.getCell(0, 0) << std::endl; + // std::cout << pattern.getCell(0, 0) << std::endl; if (((currentScreen.size() - 1) >= pattern.getSizeY() + startY) && (pattern.getSizeX() + startX) <= (currentScreen[0].size() - 1)) { diff --git a/Hw6/PatternAcorn.hpp b/Hw6/PatternAcorn.hpp index 13f0269..dd0074c 100644 --- a/Hw6/PatternAcorn.hpp +++ b/Hw6/PatternAcorn.hpp @@ -12,7 +12,7 @@ class PatternAcorn : public Pattern private: std::uint8_t X; std::uint8_t Y; - std::array, 4> cells{}; + std::array, 5> cells{}; public: PatternAcorn(); @@ -26,7 +26,7 @@ class PatternAcorn : public Pattern }; [[nodiscard]] bool getCell(std::uint8_t x, std::uint8_t y) const override { - return cells[x][y]; + return cells[y][x]; }; }; diff --git a/Hw6/PatternBlinker.hpp b/Hw6/PatternBlinker.hpp index ead61ec..5e14f1b 100644 --- a/Hw6/PatternBlinker.hpp +++ b/Hw6/PatternBlinker.hpp @@ -26,7 +26,7 @@ class PatternBlinker : public Pattern }; [[nodiscard]] bool getCell(std::uint8_t x, std::uint8_t y) const override { - return cells[x][y]; + return cells[y][x]; }; }; diff --git a/Hw6/PatternBlock.hpp b/Hw6/PatternBlock.hpp index 70c4e3a..e284ae9 100644 --- a/Hw6/PatternBlock.hpp +++ b/Hw6/PatternBlock.hpp @@ -25,7 +25,7 @@ class PatternBlock : public Pattern }; [[nodiscard]] bool getCell(std::uint8_t x, std::uint8_t y) const override { - return cells[x][y]; + return cells[y][x]; }; }; diff --git a/Hw6/PatternGlider.hpp b/Hw6/PatternGlider.hpp index f707924..9d31121 100644 --- a/Hw6/PatternGlider.hpp +++ b/Hw6/PatternGlider.hpp @@ -26,7 +26,7 @@ class PatternGlider : public Pattern }; [[nodiscard]] bool getCell(std::uint8_t x, std::uint8_t y) const override { - return cells[x][y]; + return cells[y][x]; }; }; diff --git a/Hw6/PatternGosperGliderGun.cpp b/Hw6/PatternGosperGliderGun.cpp index 0cc9244..e7a3345 100644 --- a/Hw6/PatternGosperGliderGun.cpp +++ b/Hw6/PatternGosperGliderGun.cpp @@ -14,7 +14,6 @@ PatternGosperGliderGun::PatternGosperGliderGun() : cells[i][j] = false; } } - //Guns cells[3][35] = true; cells[3][36] = true; diff --git a/Hw6/PatternGosperGliderGun.hpp b/Hw6/PatternGosperGliderGun.hpp index 71900c4..644814f 100644 --- a/Hw6/PatternGosperGliderGun.hpp +++ b/Hw6/PatternGosperGliderGun.hpp @@ -12,7 +12,7 @@ class PatternGosperGliderGun : public Pattern private: std::uint8_t X; std::uint8_t Y; - std::array, 4> cells{}; + std::array, 11> cells{}; public: PatternGosperGliderGun(); @@ -26,7 +26,7 @@ class PatternGosperGliderGun : public Pattern }; [[nodiscard]] bool getCell(std::uint8_t x, std::uint8_t y) const override { - return cells[x][y]; + return cells[y][x]; }; }; diff --git a/Hw6/RendererConsole.cpp b/Hw6/RendererConsole.cpp index 6058e3b..b210fd0 100644 --- a/Hw6/RendererConsole.cpp +++ b/Hw6/RendererConsole.cpp @@ -22,5 +22,4 @@ void RendererConsole::render(const LifeSimulator& simulation) } } } - //rlutil::showcursor(); } \ No newline at end of file diff --git a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/PatternGlider.cpp.o b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/PatternGlider.cpp.o index 6d02fcb..8714432 100644 Binary files a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/PatternGlider.cpp.o and b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/PatternGlider.cpp.o differ diff --git a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/RendererConsole.cpp.o b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/RendererConsole.cpp.o index afbbaa0..4409603 100644 Binary files a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/RendererConsole.cpp.o and b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/RendererConsole.cpp.o differ diff --git a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/main.cpp.o b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/main.cpp.o index 347c3a0..47a2924 100644 Binary files a/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/main.cpp.o and b/Hw6/cmake-build-debug/CMakeFiles/ConwaysLife.dir/main.cpp.o differ diff --git a/Hw6/cmake-build-debug/ConwaysLife b/Hw6/cmake-build-debug/ConwaysLife index 9f88cc4..57a6b50 100755 Binary files a/Hw6/cmake-build-debug/ConwaysLife and b/Hw6/cmake-build-debug/ConwaysLife differ diff --git a/Hw6/main.cpp b/Hw6/main.cpp index 8426a4c..5834160 100644 --- a/Hw6/main.cpp +++ b/Hw6/main.cpp @@ -14,26 +14,29 @@ int main() { - RendererConsole rendererConsole = RendererConsole(); - LifeSimulator lifeSimulator = LifeSimulator(100, 100); + RendererConsole rendererConsole; + PatternAcorn patternAcorn; + PatternBlock patternBlock; + PatternGosperGliderGun patternGosperGliderGun; + PatternGlider patternGlider; + PatternBlinker patternBlinker; + + LifeSimulator lifeSimulator = LifeSimulator(100, 28); + LifeSimulator lifeSimulator1 = LifeSimulator(100, 28); + LifeSimulator lifeSimulator2 = LifeSimulator(100, 28); - PatternBlinker patternBlinker = PatternBlinker(); lifeSimulator.insertPattern(patternBlinker, 50, 10); - PatternGlider patternGlider = PatternGlider(); lifeSimulator.insertPattern(patternGlider, 5, 10); - PatternGosperGliderGun patternGosperGliderGun = PatternGosperGliderGun(); - lifeSimulator.insertPattern(patternGosperGliderGun, 20, 20); + lifeSimulator1.insertPattern(patternGosperGliderGun, 0, 0); - PatternBlock patternBlock = PatternBlock(); lifeSimulator.insertPattern(patternBlock, 0, 10); - PatternAcorn patternAcorn = PatternAcorn(); - lifeSimulator.insertPattern(patternAcorn, 0, 23); + lifeSimulator2.insertPattern(patternAcorn, 5, 5); int x = 0; - while (x < 400) + while (x < 200) { rendererConsole.render(lifeSimulator); lifeSimulator.update(); @@ -41,5 +44,25 @@ int main() std::this_thread::sleep_for(std::chrono::milliseconds(10)); x++; } + + int y = 0; + while (y < 200) + { + rendererConsole.render(lifeSimulator1); + lifeSimulator1.update(); + std::cout << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + y++; + } + + int z = 0; + while (z < 200) + { + rendererConsole.render(lifeSimulator2); + lifeSimulator2.update(); + std::cout << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(25)); + z++; + } return 0; } \ No newline at end of file