Я хочу сделать заявку java, предназначенную для соревнований по киберспорту. В частности, это приложение предназначено для сервера teampeak.
Я хочу, чтобы пользователи на канале были отсортированы по группам по 5 (они будут идентифицироваться по уникальному идентификатору и числу, представляющему уровень навыка).
Таким образом, когда 5 пользователей находятся между 1 и 3 уровнями квалификации для помещения в одну группу, последующие в другой группе (каждая из 5) и до тех пор, пока этот список / карта больше не сможет составлять группы из 5 человек. .
Можете ли вы помочь мне с идеей? Я знаю, как получить uniqid с сервера teampeak, а также уровень квалификации, но я не знаю, как случайным образом сгруппировать их и выполнить условие уровня навыка.
Я пробовал хэш-карту, но она не удалась .
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();
}
}
}
Пример :
Если на канале TeamSpeak есть 20 человек с уровнем навыка 1 уровня -18 , робот будет собирать команды из 5 человек с одинаковым уровнем квалификации (с запасом + - 1 уровень). Например, , если у меня есть уровень квалификации 5 , и на канале есть по крайней мере 4 человека с уровнем навыка между 3-5, 5 человек (включая меня) будут добавлены в список или массив или без разницы. После того как мы сформировали команду из 5 человек, программа продолжит работу и сформирует команды из 5 человек с одинаковым уровнем квалификации, пока это больше не будет возможно (в основной комнате не будет 5 человек).