Penney's game: Difference between revisions

Content added Content deleted
(→‎{{Header|Ruby}}: optimized the choice of the computer.)
Line 1,554: Line 1,554:


=={{Header|Ruby}}==
=={{Header|Ruby}}==
<lang ruby># Penney's Game
<lang ruby>Toss = [:Heads, :Tails]


Toss = [:Heads, :Tails]
def yourChoice
def yourChoice
puts "Enter your choice (H/T)"
puts "Enter your choice (H/T)"
Line 1,570: Line 1,568:
end
end


puts "%s I start, %s you start ..... #{coin = Toss.sample}" % Toss
if coin == Toss[0]
myC = Array.new(3){Toss.sample}
puts "I chose #{myC.join(' ')}"
yC = yourChoice
else
yC = yourChoice
myC = Toss - [yC[1]] + yC.first(2)
puts "I chose #{myC.join(' ')}"
end

seq = Array.new(3){Toss.sample}
print seq.join(' ')
loop do
loop do
puts "\n I win!" or break if seq == myC
puts "\n%s I start, %s you start ..... %s" % [*Toss, coin = Toss.sample]
if coin == Toss[0]
puts "\n You win!" or break if seq == yC
seq.push(Toss.sample).shift
myC = Toss.shuffle << Toss.sample
print " #{seq[-1]}"
puts "I chose #{myC.join(' ')}"
yC = yourChoice
else
yC = yourChoice
myC = Toss - [yC[1]] + yC.first(2)
puts "I chose #{myC.join(' ')}"
end
seq = Array.new(3){Toss.sample}
print seq.join(' ')
loop do
puts "\n I win!" or break if seq == myC
puts "\n You win!" or break if seq == yC
seq.push(Toss.sample).shift
print " #{seq[-1]}"
end
end</lang>
end</lang>