Предложения по открытию панели инструментов Rails для разработки сложной игры? - PullRequest
0 голосов
/ 27 мая 2010

Как бы вы предложили разработать систему испытаний в качестве части игры о еде, чтобы она была максимально автоматизированной? Все инструменты RoR, шаблоны проектирования и логика находятся в вашем распоряжении (например, консоли администратора, crontab, arch и т. Д.). Приз достается тому, кто предложит самый простой и автоматизированный дизайн!

Вот требования:

  1. У пользователя много вызовов.

  2. У значка много вызовов. (Уникальный знак присуждается за каждый выигранный вызов.)

  3. Одновременно может выполняться только одно испытание.

  4. Каждое испытание проходит ограниченное количество дней. Например, одна задача может длиться 3 дня, а другая - 7 дней.

  5. Проблемы могут быть сезонными. Например, «Eat 13 Pumpkins» работает только во время осени.

  6. Новые задачи добавляются в игру на постоянной основе. Например, новая задача каждую неделю.

  7. Каждый вызов имеет определенную вероятность быть выбранным для запуска. Например, для задания «Ешь 10 пирогов» с вероятностью 10% можно выбрать для запуска.

  8. Когда каждая новая задача добавляется в базу данных, я хочу, чтобы вероятности запуска изменялись динамически. Я хочу избежать сценария, в котором я вручную обновляю поле базы данных, чтобы, например, изменить вероятность с 10% до 5%.

  9. Испытания действуют как пасхальные яйца. Всплывающие значки с вызовами появляются в разных местах на веб-странице.

  10. Пользователь получает значок за успешное выполнение задания, но только когда он активен.

  11. Между каждым вызовом есть время ожидания. От 1 до 7 дней. Какое время ожидания является случайным, но вероятность того, что время ожидания короткое, высока, а вероятность того, что оно долгое время ожидания, мала.

1 Ответ

3 голосов
/ 04 июня 2010

Это большой вопрос.

  1. Использование Rails в качестве бэкенда, рендеринг данных json для javascript внешнего интерфейса для отображения всплывающих окон с иконкой вызова

  2. Кажется, у вас отключена схема базы данных. Это не так сложно.

  3. Вычислять вероятность вызова динамически каждый раз, когда вызов инициирован (просто выполните случайную сортировку, так как вы, кажется, просто хотите случайный вызов каждый раз)

  4. Каждая задача поддерживает текстовый атрибут, который хранит свои ограничения в сезон

  5. Ограничение базы данных для обеспечения того, чтобы только один вызов на человека за один раз

  6. Если схема базы данных настроена правильно, вызовы могут быть просто добавлены с помощью вызова Challenge.create. Остальная часть игры будет автоматизирована.

...