+
+ def victories_and_ties
+ victors = Array.new
+ victories_ties = Hash.new
+ candidates = @matrix.keys.sort
+
+ candidates.each do |candidate|
+ candidates.each do |challenger|
+ next if candidate == challenger
+ diff = @matrix[candidate][challenger] - @matrix[challenger][candidate]
+ if diff >= 0
+ victors << [candidate, challenger, diff]
+ end
+ end
+ end
+
+ victors.each do |list|
+ if victories_ties.has_key?(list[0])
+ victories_ties[list[0]][list[1]] = list[2]
+ else
+ victories_ties[list[0]] = Hash.new
+ victories_ties[list[0]][list[1]] = list[2]
+ end
+ end
+
+ return victories_ties
+ end