From c0a2217052dec8fc995949732c9e28a15c9319fd Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Mon, 11 Oct 2021 13:41:08 -0400 Subject: maketeams is now generic for any number of players --- app/controllers/pages_controller.rb | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'app/controllers/pages_controller.rb') diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 76fe03a..7ae535b 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -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 -- cgit 1.4.1