void Viewer::ImageRandom() { size_t imageCount = m_cacher.ImageCount(); if (imageCount <= 1) return; std::uniform_int_distribution<size_t> posDist(0, imageCount - 2); size_t pos = posDist(m_random); if (pos >= m_cacher.CurrentImageIndex()) pos++; ActiveImage(m_cacher.GotoImage(pos)); }
void FoodManager::createRandomFood(){ std::uniform_int_distribution<std::mt19937::result_type> fDist(1, 2); FoodType foodType; switch(fDist(m_rng)){ case 1: foodType = FoodType::Normal; break; case 2: foodType = FoodType::Bad; break; default: throw std::out_of_range("Food type out of range"); } std::uniform_int_distribution<std::mt19937::result_type> posDist(m_app->getSize().x, m_app->getSize().y); }