From 86992e85220e9a42ed498497ca733e39fb7266fc Mon Sep 17 00:00:00 2001 From: guntasgrewal Date: Thu, 24 Apr 2014 21:46:10 -0400 Subject: seeds and elimination small changes --- db/seeds.rb | 19 +++++++++++++++++++ lib/scheduling/elimination.rb | 17 +++++++++-------- lib/scheduling/roundrobin.rb | 24 ++++++++++++++++++++++++ lib/scoring/ScoringAlgorithm.rb | 6 ++++++ 4 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 lib/scheduling/roundrobin.rb create mode 100644 lib/scoring/ScoringAlgorithm.rb diff --git a/db/seeds.rb b/db/seeds.rb index 78c8ea0..7628efe 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -138,6 +138,25 @@ if Rails.env.development? tourn6.join(guntas) tourn6.join(luke) tourn6.join(marco) +=begin + hash1 = {:username => "TeslasMind", :id => id} + hash2 = {:username => "Alpha142", :id => id} + hash3 = {:username => "ImFromNasa", :id => id} + hash4 = {:username => "NalfeinX", :id => id} + hash5 = {:username => "GTBPhoenix", :id => id} + hash6 = {:username => , :id => id} + hash7 = {:username => username, :id => id} + hash8 = {:username => username, :id => id} + hash9 = {:username => username, :id => id} + hash10 = {:username => username, :id => id} + +FOR ROUNG ROBIN + +http://stackoverflow.com/questions/6648512/scheduling-algorithm-for-a-round-robin-tournament + + +=end + end diff --git a/lib/scheduling/elimination.rb b/lib/scheduling/elimination.rb index 0e93f7a..543df52 100644 --- a/lib/scheduling/elimination.rb +++ b/lib/scheduling/elimination.rb @@ -7,14 +7,6 @@ module Scheduling @tournament_stage = tournament_stage end - def tournament_stage - @tournament_stage - end - - def tournament - self.tournament_stage.tournament - end - def create_matches num_teams = (self.tournament.players.count/self.tournament.min_players_per_team).floor num_matches = (Float(num_teams - tournament.min_teams_per_match)/(tournament.min_teams_per_match - 1)).ceil + 1 @@ -138,5 +130,14 @@ STRING return str end + private + + def tournament_stage + @tournament_stage + end + + def tournament + self.tournament_stage.tournament + end end end diff --git a/lib/scheduling/roundrobin.rb b/lib/scheduling/roundrobin.rb new file mode 100644 index 0000000..e050c41 --- /dev/null +++ b/lib/scheduling/roundrobin.rb @@ -0,0 +1,24 @@ + +module Scheduling + class RoundRobin + include Rails.application.routes.url_helpers + + def initialize(tournament_stage) + @tournament_stage = tournament_stage + end + + def create_matches + num_teams = (self.tournament.players.count/self.tournament.min_players_per_team).floor + num_matches = Float(num_teams/2)*(num_teams-1) + + end + + def match_finished(match) + + end + + def graph(current_user) + + end + end +end diff --git a/lib/scoring/ScoringAlgorithm.rb b/lib/scoring/ScoringAlgorithm.rb new file mode 100644 index 0000000..f2afa6f --- /dev/null +++ b/lib/scoring/ScoringAlgorithm.rb @@ -0,0 +1,6 @@ +module Scoring + class ScoringAlgorithm + def self.score(match, interface) + end + end +end -- cgit v1.2.3-54-g00ecf From e1ef99a9ade5723c7bc65977546b4e1fdaab9688 Mon Sep 17 00:00:00 2001 From: AndrewMurrell Date: Thu, 24 Apr 2014 21:55:49 -0400 Subject: Mixed things up a bit on the matches controller and show view. --- app/controllers/matches_controller.rb | 23 ++++++++++++++--------- app/views/matches/show.html.erb | 34 +++++++++++++++++++--------------- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb index 138cf28..b1b283b 100644 --- a/app/controllers/matches_controller.rb +++ b/app/controllers/matches_controller.rb @@ -55,7 +55,6 @@ class MatchesController < ApplicationController @purp = purple @blue = blue - end def get_riot_info_fake @@ -151,8 +150,7 @@ class MatchesController < ApplicationController @purp = purple @blue = blue - - end #end def + end # GET /tournaments/1/matches/1 # GET /tournaments/1/matches/1.json @@ -184,13 +182,18 @@ class MatchesController < ApplicationController #make this use the statistics interface for scoring and ScoringAlgorithms + @match.winner = @match.teams.find_by_id(params['winner']) + @match.blowout = false + @match.statistics['Score'] = @tournament.settings['ScoringMethod'].constantize.score(@match, @match.statistics) + +=begin # Individual scores - scores = params["scores"] - scores.each do |user_name, score| - Statistic.create(user: User.find_by_user_name(user_name), match: @match, name: "score", value: score.to_i) - end + #scores = params["scores"] + #scores.each do |user_name, score| + # Statistic.create(user: User.find_by_user_name(user_name), match: @match, name: "score", value: score.to_i) + #end # Team scores (processing for manual) team_scores = {} @@ -208,6 +211,7 @@ class MatchesController < ApplicationController #unless cur_match_num == 1 # @match.winner.matches.push(@tournament.matches_ordered[cur_match_num/2]) #end +=end # Skip peer evaluation if there aren't enough players per team peer = false @@ -218,12 +222,13 @@ class MatchesController < ApplicationController end @match.status = peer ? 2 : 3 + respond_to do |format| if @match.save format.html { redirect_to tournament_match_path(@tournament, @match), notice: 'Peer evaluation started.' } format.json { head :no_content } else - format.html { redirect_to @tournament, notice: "You don't have permission to start this match." } + format.html { redirect_to @tournament, notice: "Permission denied" } format.json { render json: "Permission denied", status: :forbidden } end end @@ -273,7 +278,6 @@ class MatchesController < ApplicationController format.json { render json: @tournament.errors, status: :unprocessable_entity } end end - end private @@ -282,6 +286,7 @@ class MatchesController < ApplicationController @match = Match.find(params[:id]) @tournament = @match.tournament_stage.tournament end + def set_tournament @tournament = Tournament.find(params[:tournament_id]) end diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb index e1fe29e..2ec0ea6 100644 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -47,7 +47,8 @@ function score_peers() { <% if @match.status <= 1 %>
  • <%= user.user_name %>
  • <% else %> -
  • <%= user.user_name %> - SCORE: <%= Statistic.where(:name => "score", :user => user, :match => @match).first.value %>
  • + <% score = Statistic.where(:name => "score", :user => user, :match => @match).first%> +
  • <%= user.user_name %> - SCORE: <%= score ? score.value : 0 %>
  • <% end %> <% end %> @@ -76,21 +77,24 @@ function score_peers() { <% when 1 %> - <% if @tournament.hosts.include? current_user %> - - <% @match.teams.each do |team| %> -
    Team <%= team.id.to_s %> - <% team.users.collect{|u| u.user_name}.each do |k| %><% end %> -
    + + <% case @tournament.sampling_method %> + <% when "Manual" %> + <% if @tournament.hosts.include? current_user %> + + <% @match.teams.each do |team| %> + <%= tag :input, {"type" => "radio", "name" => "winner", "value" => "#{team.id}" } %> + <%= "Team #{team.id} Won" %> + <% end %> + <%= submit_tag("Finish match") %> + <%= @tournament.settings['ScoringMethod'] %> + <% else %> +

    The match is running; the host has yet to post the scores of the match.

    <% end %> - <%= submit_tag("Finish match") %> - <% else %> -

    The match is running; the host has yet to post the scores of the match.

    + <% when "Double Blind" %> +

    Double Blind isn't implemented yet.

    + <% when "RiotAPI" %> +

    Riot API is being called for Statistics. Results will appear shortly.

    <% end %> <% when 2 %> -- cgit v1.2.3-54-g00ecf