class Baseball
def initialize(count=3)
@count = count
setup
end
def setup
random = (1..9).sort_by { rand }
@computer = random[0...@count]
end
def get_score(u)
s = b = 0
(0...@count).each do |i|
(0...@count).each do |j|
(i == j) ? s += 1 : b += 1 if @computer[i] == u[j]
end
end
return s, b
end
def play
count = 0
begin
print "user #{@count} numbers: "
user = gets.delete(" ").split("").map(&:to_i)
if user[0] == 0
print "Computer: "
@computer.each { |x| print x, " " }
puts
break
end
s, b = get_score(user[0...@count])
count += 1
puts "(#{count}) Strike: #{s}, Ball: #{b}, Out: #{@count-s-b}"
end until s == 3
puts "You played #{count} times."
end
end
b = Baseball.new
b.play
b = Baseball.new(5)
b.play
Y2xhc3MgQmFzZWJhbGwKICBkZWYgaW5pdGlhbGl6ZShjb3VudD0zKQogICAgQGNvdW50ID0gY291bnQKICAgIHNldHVwCiAgZW5kCiAKICBkZWYgc2V0dXAKICAgIHJhbmRvbSA9ICgxLi45KS5zb3J0X2J5IHsgcmFuZCB9CiAgICBAY29tcHV0ZXIgPSByYW5kb21bMC4uLkBjb3VudF0KICBlbmQKIAogIGRlZiBnZXRfc2NvcmUodSkKICAgIHMgPSBiID0gMAogCiAgICAoMC4uLkBjb3VudCkuZWFjaCBkbyB8aXwKICAgICAgKDAuLi5AY291bnQpLmVhY2ggZG8gfGp8CiAgICAgICAgKGkgPT0gaikgPyBzICs9IDEgOiBiICs9IDEgaWYgQGNvbXB1dGVyW2ldID09IHVbal0KICAgICAgZW5kCiAgICBlbmQKIAogICAgcmV0dXJuIHMsIGIKICBlbmQKIAogIGRlZiBwbGF5CiAgICBjb3VudCA9IDAKICAgIGJlZ2luCiAgICAgIHByaW50ICJ1c2VyICN7QGNvdW50fSBudW1iZXJzOiAiCiAgICAgIHVzZXIgPSBnZXRzLmRlbGV0ZSgiICIpLnNwbGl0KCIiKS5tYXAoJjp0b19pKQogCiAgICAgIGlmIHVzZXJbMF0gPT0gMAogICAgICAgIHByaW50ICJDb21wdXRlcjogIgogICAgICAgIEBjb21wdXRlci5lYWNoIHsgfHh8IHByaW50IHgsICIgIiB9CiAgICAgICAgcHV0cwogICAgICAgIGJyZWFrCiAgICAgIGVuZAogCiAgICAgIHMsIGIgPSBnZXRfc2NvcmUodXNlclswLi4uQGNvdW50XSkKICAgICAgY291bnQgKz0gMQogCiAgICAgIHB1dHMgIigje2NvdW50fSkgU3RyaWtlOiAje3N9LCBCYWxsOiAje2J9LCBPdXQ6ICN7QGNvdW50LXMtYn0iCiAgICBlbmQgdW50aWwgcyA9PSAzCiAKICAgIHB1dHMgIllvdSBwbGF5ZWQgI3tjb3VudH0gdGltZXMuIgogIGVuZAplbmQKIApiID0gQmFzZWJhbGwubmV3CmIucGxheQoKYiA9IEJhc2ViYWxsLm5ldyg1KQpiLnBsYXk=
user 3 numbers: (1) Strike: 0, Ball: 1, Out: 2
user 3 numbers: (2) Strike: 0, Ball: 0, Out: 3
user 3 numbers: (3) Strike: 0, Ball: 2, Out: 1
user 3 numbers: Computer: 9 3 7
You played 3 times.
user 5 numbers: (1) Strike: 1, Ball: 1, Out: 3
user 5 numbers: (2) Strike: 2, Ball: 1, Out: 2
user 5 numbers: Computer: 1 8 7 3 9
You played 2 times.