All pastes #97493 Raw Edit

alex

public text v1 · immutable
#97493 ·published 2006-07-23 20:03 UTC
rendered paste body
*** quiz.rb.orig	2006-07-23 21:10:45.000000000 +0200
--- quiz.rb	2006-07-23 21:57:54.000000000 +0200
*************** class QuizPlugin < Plugin
*** 203,224 ****
      # Updates the per-channel rank table, which is kept for performance reasons
      #
      def calculate_ranks( m, q, nick )
          if q.registry.has_key?( nick )
              stats = q.registry[nick]
  
              # Find player in table
              i = 0
              q.rank_table.each_index do |i|
!                 break if nick == q.rank_table[i][0]
              end
  
!             old_rank = i
!             q.rank_table.delete_at( i )
  
              # Insert player at new position
              inserted = false
              q.rank_table.each_index do |i|
!                 if stats.score >= q.rank_table[i][1].score
                      q.rank_table[i,0] = [[nick, stats]]
                      inserted = true
                      break
--- 203,236 ----
      # Updates the per-channel rank table, which is kept for performance reasons
      #
      def calculate_ranks( m, q, nick )
+         debug "before resort:"
+         debug q.rank_table.inspect
+ 
          if q.registry.has_key?( nick )
              stats = q.registry[nick]
  
              # Find player in table
+             found_player = false
              i = 0
              q.rank_table.each_index do |i|
!                 if nick == q.rank_table[i][0]
!                   found_player = true
!                   break
!                 end
              end
  
!             # Remove player from old position
!             if found_player
!               old_rank = i
!               q.rank_table.delete_at( i )
!             else
!               old_rank = nil
!             end
  
              # Insert player at new position
              inserted = false
              q.rank_table.each_index do |i|
!                 if stats.score > q.rank_table[i][1].score
                      q.rank_table[i,0] = [[nick, stats]]
                      inserted = true
                      break
*************** class QuizPlugin < Plugin
*** 231,244 ****
                  i += 1
              end
  
!             if i < old_rank
                  m.reply "#{nick} ascends to rank #{i + 1}. Congratulations :)"
!             elsif i > old_rank
                  m.reply "#{nick} slides down to rank #{i + 1}. So Sorry! NOT. :p"
              end
          else
              q.rank_table << [[nick, PlayerStats.new( 1 )]]
          end
          debug q.rank_table.inspect
      end
  
--- 243,259 ----
                  i += 1
              end
  
!             unless old_rank.nil?
!               if i < old_rank
                  m.reply "#{nick} ascends to rank #{i + 1}. Congratulations :)"
!               elsif i > old_rank
                  m.reply "#{nick} slides down to rank #{i + 1}. So Sorry! NOT. :p"
+               end
              end
          else
              q.rank_table << [[nick, PlayerStats.new( 1 )]]
          end
+         debug "after resort:"
          debug q.rank_table.inspect
      end