maketeams is now generic for any number of players
This commit is contained in:
parent
848c59f15e
commit
c0a2217052
|
@ -11,23 +11,22 @@ class PagesController < ApplicationController
|
|||
|
||||
private
|
||||
def maketeams
|
||||
r = Player.where("strikes < 3").order(Arel.sql("RANDOM()")).to_a
|
||||
r = Player.where(strikes: 0...3).order(Arel.sql("RANDOM()")).to_a
|
||||
|
||||
groups = case r.size
|
||||
when 5
|
||||
[r.shift(3), r.shift(2)]
|
||||
when 6
|
||||
r.each_slice(3)
|
||||
when 9
|
||||
r.each_slice(3)
|
||||
when 10
|
||||
[r.shift(4), r.shift(3), r.shift(3)]
|
||||
when 13
|
||||
[r.shift(4), r.shift(3), r.shift(3), r.shift(3)]
|
||||
when 14
|
||||
[r.shift(4), r.shift(4), r.shift(3), r.shift(3)]
|
||||
else
|
||||
r.each_slice(4)
|
||||
end
|
||||
teams = []
|
||||
while r.size > 0
|
||||
if r.size % 4 == 0
|
||||
teams << r.shift(4)
|
||||
elsif r.size % 4 == 2
|
||||
teams << r.shift(3)
|
||||
teams << r.shift(3)
|
||||
elsif r.size % 4 == 3
|
||||
teams << r.shift(3)
|
||||
else
|
||||
teams << r.shift(4)
|
||||
end
|
||||
end
|
||||
|
||||
teams.sort { |a, b| b.length <=> a.length }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue