打开Rails工具箱来设计挑战游戏的建议?

时间:2010-05-27 10:44:22

标签: ruby-on-rails design-patterns database-design architecture

您如何建议将挑战系统设计为食品饮食游戏的一部分,以便尽可能实现自动化?您可以使用所有RoR工具,设计模式和逻辑(例如,管理控制台,crontab,拱形等)。无论谁能提出最简单,最自动化的设计,都能获得奖品!

以下是要求:

  1. 用户面临许多挑战。

  2. 徽章有很多挑战。 (每次挑战都会获得一个独特的徽章。)

  3. 一次只能运行一项挑战。

  4. 每次挑战的运行天数都有限。例如,一个挑战可以运行3天,而另一个运行7天。

  5. 挑战可能是季节性的。例如,“吃13个南瓜”只在秋季运行。

  6. 持续不断地为游戏添加新的挑战。例如,每周都有新的挑战。

  7. 每个挑战都有一定的概率被选中运行。例如,“吃10个馅饼”挑战有10%被选中的机会。

  8. 随着每个新挑战被添加到数据库中,我希望运行的概率能够动态变化。我想避免手动更新数据库字段的情况,例如将概率从10%更改为5%。

  9. 挑战就像复活节彩蛋一样。挑战图标弹出在网页上的不同位置。

  10. 用户获得成功完成挑战的徽章,但仅限于激活时。

  11. 每次挑战之间都有一些等待时间。 1至7天。哪个等待时间是随机的,但是等待时间短的概率很高,而且等待时间长的概率很低。

1 个答案:

答案 0 :(得分:3)

这是一个很大的问题。

  1. 使用Rails作为后端,为前端javascript渲染json数据以显示挑战图标弹出窗口

  2. 您似乎已关闭数据库架构。它并不复杂。

  3. 每次启动挑战时动态计算挑战概率(只需进行随机排序,因为您似乎每次只需要随机挑战)

  4. 每个挑战都维护一个文本属性,用于存储其在季节中的限制

  5. 确保每人每次只有一次挑战的数据库限制

  6. 如果数据库架构设置正确,可以使用Challenge.create调用添加挑战。游戏的其余部分将自动化。