Как бы вы предложили разработать систему испытаний в качестве части игры о еде, чтобы она была максимально автоматизированной? Все инструменты RoR, шаблоны проектирования и логика находятся в вашем распоряжении (например, консоли администратора, crontab, arch и т. Д.). Приз достается тому, кто предложит самый простой и автоматизированный дизайн!
Вот требования:
У пользователя много вызовов.
У значка много вызовов. (Уникальный знак присуждается за каждый выигранный вызов.)
Одновременно может выполняться только одно испытание.
Каждое испытание проходит ограниченное количество дней. Например, одна задача может длиться 3 дня, а другая - 7 дней.
Проблемы могут быть сезонными. Например, «Eat 13 Pumpkins» работает только во время осени.
Новые задачи добавляются в игру на постоянной основе. Например, новая задача каждую неделю.
Каждый вызов имеет определенную вероятность быть выбранным для запуска. Например, для задания «Ешь 10 пирогов» с вероятностью 10% можно выбрать для запуска.
Когда каждая новая задача добавляется в базу данных, я хочу, чтобы вероятности запуска изменялись динамически. Я хочу избежать сценария, в котором я вручную обновляю поле базы данных, чтобы, например, изменить вероятность с 10% до 5%.
Испытания действуют как пасхальные яйца. Всплывающие значки с вызовами появляются в разных местах на веб-странице.
Пользователь получает значок за успешное выполнение задания, но только когда он активен.
Между каждым вызовом есть время ожидания. От 1 до 7 дней. Какое время ожидания является случайным, но вероятность того, что время ожидания короткое, высока, а вероятность того, что оно долгое время ожидания, мала.