gpt4 book ai didi

java - 实现动态奖励制度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:42 26 4
gpt4 key购买 nike

我一直在开发在线扑克游戏。但我一直在碰壁。我想在系统中实现奖励,但我希望它们是动态的。这意味着我不想为我想添加的每个奖项重新编译。

我想过每个奖项都使用Python代码。然后,当服务器检查用户是否有资格获得奖励时,它会使用 Jython 运行 python 脚本(服务器使用 Java 和 Netty NIO),如果该函数返回某个值,我就会将奖励奖励给用户。哪个可行,但可能有更有效的技术,不会迫使我每次需要检查用户是否获得奖励时运行数百个 python 脚本。

什么时候做这些检查最好?我有一个 Hook 系统,我将在其中指定 Hook ,例如([onconnect][ondisconnect][chatmessage.received])。这也可以工作,但感觉有点粗糙,我仍然需要从数据库运行所有脚本。

最佳答案

如果我是你,我会有一个完全独立的授予奖项的过程。它可能每天在包含所有玩家/游戏数据的基础数据库上运行一次。

您的面向客户的核心应用知道奖项,但它所知道的只是从数据库加载的数据——比如标题、图片、描述,可能有多少人获得了奖项,等等,以及 (基于数据库表)谁获得了奖项。

您的“奖励授予者”流程仅以批处理模式运行,每天/每小时一次等,并向符合条件的玩家授予新奖励。然后面向客户的核心应用程序会通知他们,但实际上不必知道如何授予他们的智慧。这使您可以随时自由地重新编译和重新运行您的奖励授予者,而不会影响核心应用程序。

另一种方法是编写一个简单的规则接口(interface),该接口(interface)允许您在数据中定义规则,具体取决于您的奖励受到的限制程度。这将是实现您所描述的目标的理想选择,但在我看来,这是相当多的工作,返回不多。

PS -- 在运行在线扑克服务器之类的东西时,您会一直遇到这个问题的版本。您绝对需要开发一种方法来部署新代码,而不会终止您的服务或有停机时间窗口。从长远来看,围绕以 Java 为中心的代码解决方案来解决问题并不能解决问题。您应该查看有关运行真正的 24/7 服务的文献,有很多方法可以解决这个问题,现在实际上并不那么困难。

关于java - 实现动态奖励制度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939274/

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