/ Simulácia koinflipu Ruby (hlava alebo číslo) -

Rubová simulácia mince (hlava alebo číslo) - rubín

Ahoj kluci, musím urobiť program, ktorý simuluje coinflip a rozdá hlavu alebo číslo. Urobil som to

a = rand(1..2)
if a == 1 then
puts "HEAD!"
else
puts "NUMBER!"
end

enter = gets
if enter == "n"
a = rand(1..2)
if a == 1 then
puts "HEAD!"
else
puts "NUMBER!"
end
end

ale ako môžem zahrnúť zakaždým, keď stlačíte Enter, malo by to pokračovať a pokračovať v simulácii coinflipu ako ... HEAD (enter) HEAD (enter) NUMBER (enter) a tak ďalej.

odpovede:

1 pre odpoveď č. 1

Potrebujete nejaký druh slučka, nielen if, Tu je krátky spôsob, ako to urobiť:

loop do
puts ["HEAD", "NUMBER"].sample
break if gets != "n"
end

Alebo ak ste v poriadku, zastavte sa stlačením CTRL-C:

loop do
puts ["HEAD", "NUMBER"].sample
gets
end

Pomocou testu po slučke (t. J gets a možno break po vhodnejšie je vytlačiť výsledok prevrátenia), pretože zabraňuje duplikácii kódu. Prečítajte si tiež tohto populárneho sprievodcu štýlom Ruby:
https://github.com/bbatsov/ruby-style-guide#loop-with-break
https://github.com/bbatsov/ruby-style-guide#infinite-loop