ruby
コード ``puts "あっち向いてホイを始めます" puts "ジャンケン・・・" class JankenAcchimuite def initialize (draw ="あいこ",lose ="負け",win ="勝ち") @draw = draw @lose = lose @win = win end def janken #実装する puts "[0]グー,[1]チョキ,[2]パー" player_hand = gets.to_i program_hand = rand(3) jankens = ["グー","チョキ","パー"] puts "あなたの手:#{jankens[player_hand]},相手の手:#{jankens[program_hand]}" if player_hand == program_hand puts "#{@draw}" return true elsif (player_hand == 0 && program_hand == 2 ) ||( player_hand == 1 && program_hand == 0 )||( player_hand == 2 && program_hand == 1) puts "#{@lose}" return false elsif (player_hand == 0 && program_hand == 1 ) ||( player_hand == 1 && program_hand == 2 )||( player_hand == 2 && program_hand == 0) puts "#{@win}" return false end next_game = true while next_game next_game = janken end def acchimuite_hoi puts "0(上)1(下)2(左)3(右)" player_direction = gets.to_i program_direction = rand(4) directions = ["上","下","左","右"] puts "あなた:#{directions[player_direction]} 相手:#{directions[program_direction]}" if player_direction == program_direction if puts "#{@win}" elsif puts "#{@lose}" end else puts "#{@draw}" end end end end result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて") puts result1.janken result2 = JankenAcchimuite.new("もう一度ジャンケンを行います","負けました","勝ちました") puts result2.acchimuite_hoi### 前提 以下のエラーを解決することができません。 今の状態ではメソッドが定義されていないということでしょうか? 調べて同じ形式でコードを書いたつもりでしたがエラーメッセージが出てしまい解決できませんでした。 宜しくお願いします。 エラーメッセージ ```/home/ec2-user/environment/game/game.rb:60:in `<main>': undefined method `acchimuite_hoi' for #<JankenAcchimuite:0x000000000124d988> (NoMethodError)
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を返しているのですが、あいこの場合でもあっち向いてホイにつながってしまいます。
どこかおかしい場所はありますか?
まだ回答がついていません
会員登録して回答してみよう