ruby
1コード 2``puts "あっち向いてホイを始めます" 3puts "ジャンケン・・・" 4class JankenAcchimuite 5 6 def initialize (draw ="あいこ",lose ="負け",win ="勝ち") 7 @draw = draw 8 @lose = lose 9 @win = win 10 end 11 12 def janken 13 #実装する 14 puts "[0]グー,[1]チョキ,[2]パー" 15 player_hand = gets.to_i 16 program_hand = rand(3) 17 18 jankens = ["グー","チョキ","パー"] 19 puts "あなたの手:#{jankens[player_hand]},相手の手:#{jankens[program_hand]}" 20 21 if player_hand == program_hand 22 puts "#{@draw}" 23 return true 24 elsif (player_hand == 0 && program_hand == 2 ) ||( player_hand == 1 && program_hand == 0 )||( player_hand == 2 && program_hand == 1) 25 puts "#{@lose}" 26 return false 27 elsif (player_hand == 0 && program_hand == 1 ) ||( player_hand == 1 && program_hand == 2 )||( player_hand == 2 && program_hand == 0) 28 puts "#{@win}" 29 return false 30 end 31 32 next_game = true 33 34 while next_game 35 next_game = janken 36 end 37 38 def acchimuite_hoi 39 puts "0(上)1(下)2(左)3(右)" 40 player_direction = gets.to_i 41 program_direction = rand(4) 42 directions = ["上","下","左","右"] 43 puts "あなた:#{directions[player_direction]} 相手:#{directions[program_direction]}" 44 45 if player_direction == program_direction 46 if 47 puts "#{@win}" 48 elsif 49 puts "#{@lose}" 50 end 51 else 52 puts "#{@draw}" 53 54 end 55 end 56 end 57end 58 result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて") 59 puts result1.janken 60 result2 = JankenAcchimuite.new("もう一度ジャンケンを行います","負けました","勝ちました") 61 puts result2.acchimuite_hoi### 前提 62 63 64 65 66以下のエラーを解決することができません。 67今の状態ではメソッドが定義されていないということでしょうか? 68調べて同じ形式でコードを書いたつもりでしたがエラーメッセージが出てしまい解決できませんでした。 69宜しくお願いします。 70 71 72エラーメッセージ 73```/home/ec2-user/environment/game/game.rb:60:in `<main>': undefined method `acchimuite_hoi' for #<JankenAcchimuite:0x000000000124d988> (NoMethodError) 74 75 76 77
end の位置がおかしい箇所があります。
while next_game
next_game = janken
end
end # ここに end が必要
def acchimuite_hoi
それと以下。
end
end
end # この end を削除
end
result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて")
puts result1.janken
回答ありがとうございます!
endの位置は盲点でした...一体何日無駄にしたのだろうか...
追加でお聞きしたいのですが、whileであいこの場合ジャンケンをループさせたいのでtrue,falseを返しているのですが、あいこの場合でもあっち向いてホイにつながってしまいます。
どこかおかしい場所はありますか?
回答1件