Ruby スロットゲームの条件分岐について
解決したいこと
スロット
現在Rubyで「投入コイン数に応じて当たり列が ×1 ×3 ×5 となる一般的なスロットゲームを作成しているのですが、一行以上揃えた場合(コイン数に応じて揃った行×100ポイント)の条件分岐がわからず煮詰まっています。
最終的には、以下のようにしたいです。
・ 1(10コイン) 2(30コイン) 3(50コイン)から投入コインを選ぶ
・投入コイン数に応じて揃うと当たりになる列が増える
・揃った列に応じて×100ポイントを追加する(コインではありません)
下記は一列揃った場合のみのソースコードです。
該当するソースコード
coin = 100
point = 0
loop do
puts "残りコイン数#{coin}"
puts "ポイント#{point}"
puts "何コイン入れますか?"
puts "1(10コイン) 2(30コイン) 3(50コイン) 4(やめとく)"
putin = gets.to_i
latch = [0,10,30,50]
if putin == 4
puts "また挑戦してね!"
break
elsif putin == 1||2||3
if latch[putin] > coin
puts "コインが足りません。"
break
end
end
puts "エンターを3回押して数字を揃えよう!"
coin = coin - latch[putin]
num1 = rand(9)
num2 = rand(9)
num3 = rand(9)
num4 = rand(9)
num5 = rand(9)
num6 = rand(9)
num7 = rand(9)
num8 = rand(9)
num9 = rand(9)
puts = gets
puts "--------------------"
puts "|#{num1}| | |"
puts "|#{num2}| | |"
puts "|#{num3}| | |"
puts "--------------------"
puts = gets
puts "--------------------"
puts "|#{num1}|#{num4}| |"
puts "|#{num2}|#{num5}| |"
puts "|#{num3}|#{num6}| |"
puts "--------------------"
puts = gets
puts "--------------------"
puts "|#{num1}|#{num4}|#{num7}|"
puts "|#{num2}|#{num5}|#{num8}|"
puts "|#{num3}|#{num6}|#{num9}|"
puts "--------------------"
if (num2 == num5) && (num5 == num8)
puts "おめでとう!一列揃いました"
puts "100ポイント獲得です!"
point += 100
puts "--------------------"
else
puts "残念!"
puts "--------------------"
end
end
自分で試したこと/聞きたいこと
初めは「case/when」等を使い、投入コインに応じた分岐を考えていたのですが、ある方から以下のような「別で変数を用意してそこに列が揃うごとにカウントをプラス1して、最終的にifで判断する」やり方を提示してもらいました。
ただ、下記のイメージはなんとなくわかるのですが、使い方がよくわかりません。
どのように使えばよいのでしょうか??
mathed_count = 0
mathed_count++ if (num2 == num5) && (num5 == num8)
......
if mathed_count
mathced_count * 100
else
p 'fin'
end
0