我正在构建一个有助于管理飞盘“帽子锦标赛”的应用程序.这个想法是人们报名参加这个“帽子锦标赛”.当他们注册时,为我们提供1到6之间的数值,表示他们的技能水平.
目前,我们正在接受这个庞大的注册人员名单,并根据每个玩家的技能水平手动尝试创建团队.我想,我可以通过创建一个尽可能均匀地分割团队的算法来实现自动化.
唯一的数据是“玩家”阵列和所需的“团队数量”.一般来说,我们正在关注120名球员和8支球队.
我目前的思维过程基本上是每个团队都有一个“得分”.此分数是所有分配的球员技能等级的总和.我遍历每个技能水平.我在技能水平循环中经历了几轮选秀权.根据团队的运行得分,每轮重新计算选秀顺序.
这实际上运作得相当好,但并不完美.例如,我的样本数据数组中有5个范围.我可以非常轻松地,手动交换玩家,并使团队之间的差异不超过1分…问题是以编程方式完成.
这是我到目前为止的代码:http://pastebin.com/LAi42Brq
什么数据的片段:
[2] => Array ( [user__id] => 181 [user__first_name] => Stephen [user__skill_level] => 5 ) [3] => Array ( [user__id] => 182 [user__first_name] => Phil [user__skill_level] => 6 )
谁能想到更好,更简单,更有效的方法呢?提前谢谢了!!
我觉得你的事情太复杂了.如果您有T队,请根据他们的技术水平对球员进行排序.选择前T队球员作为球队的队长.然后,从队长1开始,每个队长轮流选择他想要的队员.这可能是未被选中的球员名单中的顶尖人物.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。