首页 > 解决方案 > 自动平衡团队规模

问题描述

ArrayList 游戏玩家;

public List<Igrac> getPlayersByColor(Color color) {
    return gamePlayers.stream().filter(i -> i.hasTeam() && i.getTeam() == color).collect(Collectors.toList());
}

这里更重要的是 Player 类具有接受(红色、绿色、蓝色和黄色)和 #hasTeam(检查颜色是否为空)和 getTeam(返回实际颜色)的 Color 变量

正如我之前提到的 4 种颜色,我有 4 个团队:RED、GREEN、YELLOW 和 BLUE。玩家可以随心所欲地改变他们的球队。GamePlayers 大小为 X,最大 TeamSize 为 X/4(除以 4),每场游戏的最小玩家数为 4(每队 1 个)

我不知道如何制作一个 autoBalance() 方法,如果一个团队的差异大于其他任何一个团队,那么该方法将通过这 4 个团队对玩家进行排序。只有当团队之间的差异至少 == 1 时,它才应该允许游戏开始。

顺便说一句,您使用 Player#setTeam(Color) 将玩家排序到团队中。而且……是的,如果真的需要,我可以为每个团队添加一些地图,但我也很好奇这种方式!谢谢!

标签: java

解决方案


推荐阅读