首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按标准排序的5个项目的分组

按标准排序的5个项目的分组
EN

Stack Overflow用户
提问于 2020-04-12 23:26:05
回答 1查看 58关注 0票数 0

我想要制作一个java应用程序,它是为esports竞争而设计的。具体来说,这个应用程序将用于团队语言服务器。

我希望通道上的用户被分成5组(他们将通过一个uniqid和一个代表技能水平的数字来识别)。

因此,当5名用户处于技能等级1-3之间时,将其放在一组中,下一组将被放置在另一组中(5组中的每一组),直到该列表/地图不再能够被分成5组为止。

你能帮我提个主意吗?我知道如何从工作组语言服务器获取uniqid,以及技能级别,但我不知道如何对它们进行随机分组,以满足该技能级别条件。

我试过一个hashmap,但失败了。

代码语言:javascript
复制
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人)。

EN

回答 1

Stack Overflow用户

发布于 2020-04-13 02:32:18

在我看来,您应该分为两组(

  1. ):高级别和低级别,对于这个创建函数和检查技能级别(skills>3)的=>hight=>hight
  2. 创建HashMap团队;其中键if和组的值-编号;
  3. 与运算符和函数MathRandom完成第一组;value++;在有可用人员的情况下继续。
  4. 更改值+1(将是下一个组)使用MathRandom()完成HashMap与next Array;这是有效的,如果if Integer且唯一。当然,在放入映射

之后,您必须从数组元素中删除

您还可以尝试使用数据库管理MongoDB: 1.创建两个数据:高和低级别2。使用Pagebale在第5页上创建页面项;页数将是组号。未排序的使用方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61179515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档