#include "PatternRandom.hpp" const float DISTRIBUTION_DEV = 2.0; PatternRandom::PatternRandom(std::uint8_t cols, std::uint8_t rows, float density) : PatternSet(cols, rows), m_distributionX(cols / 2.0, cols / DISTRIBUTION_DEV), m_distributionY(rows / 2.0, rows / DISTRIBUTION_DEV) { std::uint32_t numCellsApprox = static_cast(density * cols * rows); for (std::uint32_t i = 0; i < numCellsApprox; ++i) { std::uint8_t randX = std::clamp(static_cast(m_distributionX(m_generator)), static_cast(0), cols); std::uint8_t randY = std::clamp(static_cast(m_distributionY(m_generator)), static_cast(0), rows); m_aliveCells.insert(std::pair(randX, randY)); } }