diff --git a/Gemfile b/Gemfile index 77e8c88..f2ad22b 100644 --- a/Gemfile +++ b/Gemfile @@ -50,6 +50,8 @@ gem 'spring', group: :development gem 'bootstrap-sass', '2.3.2.0' gem 'devise' gem 'cancan' + gem 'round_robin_tournament' + gem 'rb-readline' diff --git a/Gemfile.lock b/Gemfile.lock index efcfe37..cc46f26 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -28,7 +28,7 @@ GEM thread_safe (~> 0.1) tzinfo (~> 1.1) arel (5.0.1.20140414130214) - bcrypt (3.1.9) + bcrypt (3.1.10) bootstrap-sass (2.3.2.0) sass (~> 3.2) builder (3.2.2) @@ -39,7 +39,7 @@ GEM coffee-script (2.3.0) coffee-script-source execjs - coffee-script-source (1.8.0) + coffee-script-source (1.9.0) devise (3.4.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -48,7 +48,7 @@ GEM thread_safe (~> 0.1) warden (~> 1.2.3) erubis (2.7.0) - execjs (2.2.2) + execjs (2.3.0) hike (1.2.3) i18n (0.7.0) jbuilder (2.2.6) @@ -57,19 +57,19 @@ GEM jquery-rails (3.1.2) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) - json (1.8.1) + json (1.8.2) mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) mime-types (1.25.1) - minitest (5.5.0) + minitest (5.5.1) multi_json (1.10.1) mysql2 (0.3.17) orm_adapter (0.5.0) - pg (0.17.1) + pg (0.18.1) polyglot (0.3.5) rack (1.5.2) - rack-test (0.6.2) + rack-test (0.6.3) rack (>= 1.0) rails (4.1.4) actionmailer (= 4.1.4) @@ -84,7 +84,7 @@ GEM rails_12factor (0.0.3) rails_serve_static_assets rails_stdout_logging - rails_serve_static_assets (0.0.2) + rails_serve_static_assets (0.0.4) rails_stdout_logging (0.0.3) railties (4.1.4) actionpack (= 4.1.4) @@ -92,10 +92,11 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.4.2) + rb-readline (0.5.2) rdoc (4.2.0) - json (~> 1.4) responders (1.1.2) railties (>= 3.2, < 4.2) + round_robin_tournament (0.0.1) sass (3.2.19) sass-rails (4.0.5) railties (>= 4.0.0, < 5.0) @@ -111,7 +112,7 @@ GEM multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) - sprockets-rails (2.2.2) + sprockets-rails (2.2.4) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) @@ -126,7 +127,7 @@ GEM coffee-rails tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.6.0) + uglifier (2.7.0) execjs (>= 0.3.0) json (>= 1.8.0) warden (1.2.3) @@ -146,6 +147,8 @@ DEPENDENCIES pg rails (= 4.1.4) rails_12factor + rb-readline + round_robin_tournament sass-rails (~> 4.0.3) sdoc (~> 0.4.0) spring diff --git a/app/models/pool.rb b/app/models/pool.rb index 9b88d94..67dff98 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -45,27 +45,51 @@ class Pool roundRobin(4,tournament,weight_id) end - def roundRobin(pool,tournament,weight_id) - @wrestlers = Wrestler.where(weight_id: weight_id, poolNumber: pool) - @wrestlers.sort_by{|x|[x.original_seed]}.to_a - @wrestlers.each_with_index do |w,index| - next_guy_index = index+1 - while index < @wrestlers.length && next_guy_index < @wrestlers.length - other_guy = @wrestlers[next_guy_index] - createMatch(w.id,other_guy.id,tournament) - index += 1 - next_guy_index += 1 + def roundRobin(pool,tournament_id,weight_id) + @wrestlers = Wrestler.where(weight_id: weight_id, poolNumber: pool).to_a + @poolMatches = RoundRobinTournament.schedule(@wrestlers) + @poolMatches.each_with_index do |b,index| + @bout = b.map + @bout.each do |b| + if b[0] != nil and b[1] != nil + # puts "Start Map Here" + # puts b[0].name + # puts " vs " + # puts b[1].name + # puts "Round " + # puts index + 1 + @match = Match.new + @match.r_id = b[0].id + @match.g_id = b[1].id + @match.tournament_id = tournament_id + @match.round = index + 1 + @match.save + end end end end + # def roundRobin(pool,tournament,weight_id) + # @wrestlers = Wrestler.where(weight_id: weight_id, poolNumber: pool) + # @wrestlers.sort_by{|x|[x.original_seed]}.to_a + # @wrestlers.each_with_index do |w,index| + # next_guy_index = index+1 + # while index < @wrestlers.length && next_guy_index < @wrestlers.length + # other_guy = @wrestlers[next_guy_index] + # createMatch(w.id,other_guy.id,tournament) + # index += 1 + # next_guy_index += 1 + # end + # end + # end - def createMatch(w1,w2,tournament) - @match = Match.new - @match.r_id = w1 - @match.g_id = w2 - @match.tournament_id = tournament - @match.save - end + + # def createMatch(w1,w2,tournament) + # @match = Match.new + # @match.r_id = w1 + # @match.g_id = w2 + # @match.tournament_id = tournament + # @match.save + # end end \ No newline at end of file diff --git a/app/models/tournament.rb b/app/models/tournament.rb index ac2aca0..d56ce6a 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -3,7 +3,11 @@ class Tournament < ActiveRecord::Base has_many :weights, dependent: :destroy has_many :matches, dependent: :destroy has_many :mats, dependent: :destroy - attr_accessor :upcomingMatches + attr_accessor :upcomingMatches, :unfinishedMatches + + def self.unfinishedMatches + + end def upcomingMatches @matches = Match.where(tournament_id: self.id) @@ -17,7 +21,7 @@ class Tournament < ActiveRecord::Base self.weights.each do |weight| weight.generatePool end - assignRound + # assignRound assignBouts end @@ -28,34 +32,13 @@ class Tournament < ActiveRecord::Base end end - def assignRound - @matches = Match.where(tournament_id: self.id) - @matches.sort_by{|x|[x.id]} - @matches.each do |match| - @round = 1 - @w1 = Wrestler.find(match.r_id) - @w2 = Wrestler.find(match.g_id) - until wrestlingThisRound(@w1,@w2,@round) == false do - @round += 1 - end - match.round = @round - match.save - end - end + def assignBouts @bouts = Bout.new @bouts.assignBouts(self.id) end - def wrestlingThisRound(w1,w2,round) - if w1.isWrestlingThisRound(round) == true or - w2.isWrestlingThisRound(round) == true - return true - else - return false - end - end end diff --git a/app/views/static_pages/_onePool.html.erb b/app/views/static_pages/_onePool.html.erb new file mode 100644 index 0000000..9d9894d --- /dev/null +++ b/app/views/static_pages/_onePool.html.erb @@ -0,0 +1,25 @@ +
| Name | +R1 | +R2 | +R3 | +R4 | +R5 | +
|---|---|---|---|---|---|
| <%= w.name %> <%= w.season_win %>-<%= w.season_loss %> <%= w.school.name %> | +<%= w.boutByRound(1) %> Result |
+ <%= w.boutByRound(2) %> | +<%= w.boutByRound(3) %> | +<%= w.boutByRound(4) %> | +<%= w.boutByRound(5) %> | +
| Name | +R1 | +R2 | +R3 | +
|---|---|---|---|
| <%= w.name %> <%= w.season_win %>-<%= w.season_loss %> <%= w.school.name %> | +<%= w.boutByRound(1) %> Result |
+ <%= w.boutByRound(2) %> | +<%= w.boutByRound(3) %> | +
| Name | +R1 | +R2 | +R3 | +
|---|---|---|---|
| <%= w.name %> <%= w.season_win %>-<%= w.season_loss %> <%= w.school.name %> | +<%= w.boutByRound(1) %> Result |
+ <%= w.boutByRound(2) %> | +<%= w.boutByRound(3) %> | +