gpt4 book ai didi

php - 您将如何实现类似于 SO 的徽章系统?

转载 作者:可可西里 更新时间:2023-11-01 13:07:04 25 4
gpt4 key购买 nike

我需要在zend框架中做一个类似的徽章系统。

我不知道如何实现,我想知道一个事件/观察者和一些 Action 来触发一个 Action 来检查,或者一个每 10 分钟运行一次的 cron,等等。

有什么想法吗?

最佳答案

作为为客户编写游戏化插件的 Django 开发人员,我使用 Stack Overflow 和 BigDoor 作为我的灵感来源。事实证明,游戏化非常容易,但同时又非常困难。

假设您的数据库中已有一个 User 表,应用程序游戏化的核心恰好需要两个表:“Currency”和“UserCurrency”。货币表有一个必填字段“名称”,但我建议也使用“描述”。如果您为游戏化层编写一个管理界面,那么该描述会有很大帮助。

CurrencyUser 表包含三项内容:用户 ID、货币 ID 以及用户赚取的货币数额。

“货币”是一个游戏化的流行语;它不是指金钱,而是指您正在追踪的任何东西。例如,SO 会跟踪您提供了多少赏金、多少票、您对非您自己的答案进行了多少次投票,以及您的答案中有多少次通过了 10(请注意最后一个: 其他人会那样做,而不是你!)。对于这些事件中的每一个,SO 都会运行一个标准列表,获取关联的货币,并为满足的那些增加或创建一个新的 UserCurrency。

当增量发生时,这也是一个事件,并触发第二层功能,如果超过阈值,则授予徽章。

SO 中也有“ secret ”徽章。你知道吗?您不会为这些获得徽章,但会在不同的表中设置标志——编辑权限、评论权限、管理 wiki 权限等。

我提到 secret 徽章是为了说明这一点:用于跟踪奖励货币的用户事件的代码是一个与您的应用程序松散耦合的独立插件,用于跟踪通向徽章的货币事件的代码是第二个独立的插件,松散耦合的代码段,以及用于跟踪导致权限的货币事件的代码是第三个独立的松耦合代码段。只要彼此之间的 API 清晰,每个对象的内部结构都可以在某种程度上发生变化而不会影响其他对象。

所以游戏化很容易写。

这也很难。 SO 是一种灵感,因为他们真的认真思考了他们希望用户做什么。渐进式权限系统可防止恶意攻击,徽章系统从一开始就让用户了解徽章系统(“首次发布徽章!”),但它也让用户了解更多用户可以做。徽章的名称和描述令人愉悦,富有洞察力,并引导用户了解更多信息。 “游戏化”不仅仅是关于参与,而是一种告诉用户的文档,“现在你已经弄清楚了 X,你可以去争取 Y 奖了!”如果您达不到那个目标,请不要打扰游戏化。

关于php - 您将如何实现类似于 SO 的徽章系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5794455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com