end
def victories_and_ties
- victors = Array.new
- victories_ties = Hash.new
+ victories_ties = {}
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]
+ victories_ties[candidate] = {} unless victories_ties.key?(candidate)
+ if diff >= 0
+ victories_ties[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