Diff for /processmail/subroutines.pl between versions 1.4 and 3.0

version 1.4, 2005/02/15 19:27:51 version 3.0, 2008/03/23 17:50:50
Line 215  sub anondump Line 215  sub anondump
 #  #
 sub rate_questions  sub rate_questions
 {  {
     my($teams,$answers,$ratings) = @_;      my($teams,$answers,$ratings,$round) = @_;
     my $numteams = scalar keys %$teams;      my $numteams = scalar keys %$teams;
     for ($i=1;$i<=$MAXQUEST;$i++)      for ($i=$MINQUEST[$round];$i<=$MAXQUEST[$round];$i++)
     {      {
         $$ratings[$i]=$numteams+1;          $$ratings[$i]=$numteams+1;
         foreach $answer (keys %{$$answers[$i]})          foreach $answer (keys %{$$answers[$i]})
Line 225  sub rate_questions Line 225  sub rate_questions
             if ($$answers[$i]->{$answer}{score} eq '+')              if ($$answers[$i]->{$answer}{score} eq '+')
             {              {
                 $$ratings[$i] -=                   $$ratings[$i] -= 
                     scalar keys %{$answers->[$i]->{$answer}->{teams}} ;                  scalar keys %{$answers->[$i]->{$answer}->{teams}} ;
                   if ($DEBUG) {
                       print STDERR "Частота ответа $answer", 
                       scalar keys %{$answers->[$i]->{$answer}->{teams}},
                                     "\n";
                   }
             }              }
         }          }
     }      }
     if ($DEBUG)  
     {  
         for ($i=1;$i<=$MAXQUEST;$i++)  
         {  
             print STDERR "Вопрос $i, Рейтинг: ", $$ratings[$i], "\n";  
         }  
     }     
 }  }
   
 #  #
 # Подсчитываем рейтинги команд  # Подсчитываем рейтинги команд
   # @{$nopoint_questions} - список номеров вопросов, идущих вне зачёта.
   # Для них проставляются плясы/минусы, но они не учитываются в подсчёте
   # очков и рейтингов команд.
 #  #
 sub find_scores  sub find_scores
 {  {
     my ($teams,$answers,$ratings,$factor) = @_;      my ($teams,$answers,$ratings,$round,$factor,$nopoint_questions) = @_;
     foreach $team (keys %$teams)      foreach $team (keys %$teams)
     {      {
         if (!defined($factor)) {          if (!defined($factor)) {
Line 251  sub find_scores Line 252  sub find_scores
         }          }
         $$teams{$team}->{score} *=$factor;          $$teams{$team}->{score} *=$factor;
         $$teams{$team}->{rating} = 0;          $$teams{$team}->{rating} = 0;
         for ($i=1;$i<=$MAXQUEST;$i++)          for ($i=$MINQUEST[$round];$i<=$MAXQUEST[$round];$i++)
         {          {
             my $answer=$$teams{$team}->{answers}[$i];              my $answer=$$teams{$team}->{answers}[$i];
             if ($$answers[$i]->{$answer}{score} eq '+')              if ($$answers[$i]->{$answer}{score} eq '+')
             {              {
                   next if  ( @{$nopoint_questions} && 
                             grep($_==$i, @{$nopoint_questions})
                            );
                 $$teams{$team}->{score}  += 1;                  $$teams{$team}->{score}  += 1;
                 $$teams{$team}->{rating} +=                  $$teams{$team}->{rating} +=
                     $$ratings[$i];                      $$ratings[$i];

Removed from v.1.4  
changed lines
  Added in v.3.0


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>