【🔰初心者】Rubyでのじゃんけん・あっち向いてホイアプリの作成
解決したいこと
Rubyにてじゃんけん+あっち向いてホイを行うアプリを作っています。
じゃんけん終了後のあっち向いてホイにおいて以下のようにコードを書こうと考えています。
①じゃんけん勝ち→相手と同じ方向を選択した場合は勝ち。
②じゃんけん負け→相手と同じ方向を選択した場合は負け。
③ ①、②に該当しない場合はあっち向いてホイを繰り返す
じゃんけん部分で定義した「case_pattern」(勝ち、負けのパターンに分けました)
を用いてあっち向いてホイのコードを書こうと思いましたが、以下のエラーが出てしまいました。
この先のコードの書き方について教えて頂けると嬉しいです。
※(janken)メソッドで定義したものを使おうとしているのが原因なのかな?と思い、変数を工夫した方が良いのか構造を変えたほうが良いのかと考えましたが、解決に辿り着くことができません。
発生している問題・エラー
undefined local variable or method `case_pattern' for main:Object (NameError)
例)
NameError (uninitialized constant World)
該当するソースコード
require "csv"
puts"------------------------------"
puts"あっち向いてホイゲームを始めます。"
def janken
puts "じゃんけん・・・"
puts "0(グー)1(チョキ)2(パー)3(戦わない)"
select_number = gets.to_i
random_number = rand(3)
case_pattern =""
jankens = ["グー","チョキ","パー","戦わない"]
puts "あなた:#{jankens[select_number]} 相手:#{jankens[random_number]}"
puts"------------------------------"
if select_number == random_number
puts "あいこです。もう一度じゃんけんをします。"
return true
elsif select_number ==3 || random_number == 3
puts"じゃんけんが放棄されました。ゲームを終了します。"
return false
elsif select_number - random_number = 1 || -2
puts"じゃんけんに負けました。あっちむいて・・・"
case_pattern = "じゃんけん負けパターン"
return false
elsif select_number - random_number = -1 || 2
puts "じゃんけんに勝ちました。あっちむいて・・・"
case_pattern = "じゃんけん勝ちパターン"
return false
end
end
next_game = true
while next_game do
next_game = janken
end
puts "0(上)1(下)2(左)3(右)"
select_number2 = gets.to_i
random_number2 =rand(3)
directions = ["上","下","左","右"]
puts "あなた:#{directions[select_number2]} 相手:#{directions[random_number2]}"
puts"------------------------------"
# この辺りから間違えていると思います(本当は以下のように条件を作りたいのですが・・・)
case case_pattern
when"じゃんけん勝ちパターン" || select_number == random_number then
puts "あなたの勝ちです。"
end