Skip to content

Instantly share code, notes, and snippets.

@chorn
Created January 18, 2018 12:04
Show Gist options
  • Save chorn/c3bc7b299a6c762f4bbf3e046ca49087 to your computer and use it in GitHub Desktop.
Save chorn/c3bc7b299a6c762f4bbf3e046ca49087 to your computer and use it in GitHub Desktop.
def solve(*args)
return nil unless args.size == 6
player_a = args.slice(0, 3)
player_b = args.slice(3, 3)
a_score = 0
b_score = 0
(0..2).each do |i|
case player_a[i] <=> player_b[i]
when 1
a_score += 1
when -1
b_score += 1
end
end
[a_score, b_score]
end
puts solve(0, 1, 2, 0, 1, 2).join(' ')
puts solve(1, 1, 1, 0, 0, 0).join(' ')
puts solve(0, 0, 0, 1, 1, 1).join(' ')
def winner(a, b)
case a <=> b
when 1
:a
when -1
:b
else
:tie
end
end
def solve2(*args)
return ["No scores"] unless args.size.even? && !args.size.zero?
midpoint = args.size / 2
games = []
0.upto(midpoint - 1).each do |i|
games << [
args[i], # player A
args[i + midpoint] # player B
]
end
scores = { a: 0, b: 0, tie: 0 }
games.each do |a, b|
scores[winner(a, b)] += 1
end
[
scores[:a], scores[:b]
]
end
puts "solution #2"
puts solve2.join(' ')
puts solve2(0, 1).join(' ')
puts solve2(0, 1, 2, 0, 1, 2).join(' ')
puts solve2(1, 1, 1, 0, 0, 0).join(' ')
puts solve2(0, 0, 0, 1, 1, 1).join(' ')
puts solve2(0, 1, 0, 1, 0, 1, 9, 9, 9, 10).join(' ')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment