我想要制作一个java应用程序,它是为esports竞争而设计的。具体来说,这个应用程序将用于团队语言服务器。
我希望通道上的用户被分成5组(他们将通过一个uniqid和一个代表技能水平的数字来识别)。
因此,当5名用户处于技能等级1-3之间时,将其放在一组中,下一组将被放置在另一组中(5组中的每一组),直到该列表/地图不再能够被分成5组为止。
你能帮我提个主意吗?我知道如何从工作组语言服务器获取uniqid,以及技能级别,但我不知道如何对它们进行随机分组,以满足该技能级别条件。
我试过一个hashmap,但失败了。
HashMap<Integer, Integer> teams = new HashMap<>();
for(Client c : api.getClients()){
if(c.getChannelId() == 2170){
if(api.getChannelByNameExact("[LOBBY] Cauta echipa",true).getTotalClients() >= 5) {
if (c.isInServerGroup(Integer.parseInt(Configuration.info().getProperty("SILVER1")))) {
teams.put(c.getId(), 1);
}
if (c.isInServerGroup(Integer.parseInt(Configuration.info().getProperty("SILVER2")))) {
teams.put(c.getId(), 2);
}
if (c.isInServerGroup(Integer.parseInt(Configuration.info().getProperty("SILVER3")))) {
teams.put(c.getId(), 3);
}
if (c.isInServerGroup(Integer.parseInt(Configuration.info().getProperty("SILVER4")))) {
teams.put(c.getId(), 4);
}
if (c.isInServerGroup(Integer.parseInt(Configuration.info().getProperty("SILVERE")))) {
teams.put(c.getId(), 5);
}
while(teams.size() >= 5){
teams.forEach((key, value) -> {
System.out.println("Key : " + key + " Value : " +value);
if(value > 1 && value < 5){
teams.
}
});
}
teams.clear();
}
}
}实例
如果在团队语言频道上有20个人,其技能级别为1 lvl -18 lvl,则机器人将构建由5名成员组成的团队,其技术水平与+-1级相似。例如,,如果我有技能级别5,并且在频道中至少有4个人的技能级别介于3-5之间,那么这5个人(包括我自己)将被添加到列表或数组或其他任何东西中。在我们组建了5人团队之后,该项目将继续运行,并组成5人的团队,拥有相同的技能水平,直到不再可能(主厅将没有5人)。
发布于 2020-04-13 02:32:18
在我看来,您应该分为两组(
之后,您必须从数组元素中删除
您还可以尝试使用数据库管理MongoDB: 1.创建两个数据:高和低级别2。使用Pagebale在第5页上创建页面项;页数将是组号。未排序的使用方法
https://stackoverflow.com/questions/61179515
复制相似问题