/ / Simulation Ruby Coinflip (tête ou numéro) - Ruby

Ruby coinflip simulation (tête ou numéro) - rubis

Hé les gars, j'ai besoin de faire un programme qui simule un coinflip et donne une tête ou un numéro.

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

mais comment puis-je inclure chaque fois que vous appuyez sur Entrée, cela devrait continuer et continuer à simuler Coinflip comme ... HEAD (entrez) HEAD (entrez) NUMBER (entrez) et ainsi de suite.

Réponses:

1 pour la réponse № 1

Vous avez besoin d'une sorte de boucle, pas seulement un if. Voici un petit moyen de le faire:

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

Ou si vous êtes d'accord pour arrêter en appuyant sur CTRL-C:

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

À l'aide d'un test post-boucle (c.-à-d. gets et éventuellement break après l'impression du résultat de retournement) est plus appropriée ici, car elle évite la duplication de code. Consultez également ce guide de style Ruby populaire:
https://github.com/bbatsov/ruby-style-guide#loop-with-break
https://github.com/bbatsov/ruby-style-guide#infinite-loop