/ / Ruby coinflip симулация (глава или номер) - рубин

Ruby simulator coinflip (главата или числото) - рубин

Хей, момчета, трябва да направя програма, която симулира coinflip и да издам глава или номер

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

но как мога да включа всеки път, когато натиснете enter, трябва да продължи и да продължи да симулира coinflip като ... HEAD (въведете) HEAD (въведете) НОМЕР (въведете) и т.н.

Отговори:

1 за отговор № 1

Нуждаете се от някакъв вид контур, а не само an if. Ето кратък начин да го направите:

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

Или ако се справите със спирането, като натиснете CTRL-C:

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

Използвайки тест след цикъл (т.е. направете gets и евентуално break след отпечатването на резултата от обръщането) е по-подходящо тук, тъй като избягва дублирането на кода. Вижте и това популярно ръководство за стил Ruby:
https://github.com/bbatsov/ruby-style-guide#loop-with-break
https://github.com/bbatsov/ruby-style-guide#infinite-loop