我正在构建一个有助于管理飞盘“帽子锦标赛”的应用程序.这个想法是人们报名参加这个“帽子锦标赛”.当他们注册时,为我们提供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 )
谁能想到更好,更简单,更有效的方法呢?提前谢谢了!!