java - 自动平衡团队规模
问题描述
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) 将玩家排序到团队中。而且……是的,如果真的需要,我可以为每个团队添加一些地图,但我也很好奇这种方式!谢谢!
解决方案
推荐阅读
- pandas - 为什么我不能在 pandas 中按日期时间索引来索引行?
- r - 有没有最近在 R 中编写 env 变量的方法?
- raspberry-pi - 将设备连接到帐户
- laravel - Where is a better place to place Laravel Migration?
- javascript - React Class how to return a Boolean after a promise fetch call
- r - R选择一定长度的序列
- c++ - Code has function specific variables changing values outside of scope
- xaml - 在 C++/WinRT UI 线程上构造 Xaml 控件
- asp.net - Google Drive authentication in VB.NET to download a file
- sql - 为表中的每一行存储字符串值列表是不好的做法,并且违反了正常形式。我应该怎么办?