java - 存储多人 PvP 数据的有效方法?

标签 java minecraft bukkit

我开始开发自己的《我的世界》PvP 模组,但在尝试弄清楚如何存储玩家数据时遇到了困难。该模组的第一个版本是“pick-up”风格的团队死亡竞赛。 (拾取风格是指你和你的 friend 决定球队并设定获胜条件,就像一群邻居的 child 创造一场足球比赛。)

我考虑过在组建球队时使用 HashMap 来存储球员姓名及其球队值(value)(我之后会为 2 支球队拍摄,但以后希望有更多)。当游戏开始时,我会切换到其他东西来存储玩家积分、助攻、死亡等,并且需要保存每支球队的总积分。看来我应该能够用一个结构来做到这一点。我不确定 hashmap 以后会有用。

我还希望能够按球队对球员进行排序,并有一个记分板将球员从高到低进行排名。数据需要快速访问和排序。玩家每次击杀只能获得 1 分,因此也许类似于冒泡排序的方法会起作用。

我认为我走在正确的道路上,但我想看看是否有更好的方法。任何建议将不胜感激。如果有其他 StackExchange,请告诉我。

注意:我使用 Bukkit 来编写 mod,因为它是服务器端的。

最佳答案

我建议创建一个 Team 类,使用一个 ListMap 团队来容纳它们。在创建团队和游戏过程中无需使用不同的容器。

然后,您可以在您的 Team 类中放入球员的 ListMap、球队的得分以及球队可能的其他内容需要保存以及访问该信息所需的所有方法。

Keep it simple.

就排序而言,Collections排序应该适合这么多的玩家。除非您认为可以实现更快的排序...

关于java - 存储多人 PvP 数据的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23567822/

相关文章:

java - OpenGL:2D 叠加在 3D 场景上是白色的

Java:HashSet 复制最后一个值

java - 库 'javacv-android-arm.jar' 包含不会在设备上运行的 native 库

java - 在调用 onMessage() 后的 JMS 异步消息处理中,消息从队列中删除

lua - 如何终止 Lua 脚本?

java - 取消的 BukkitTask 继续运行

java - 使用 charAt 时出现字符串 outOfBoundsException

java - java bukkit 将字符串转换为 ItemStack

java - perl 和 java 正则表达式功能之间有什么区别?

java - 树结构方法