質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1878閲覧

rubyであっち向いてホイを完成させたい

diego

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2022/06/26 15:06

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/06/26 15:25

end の位置がおかしい箇所があります。 while next_game next_game = janken end end # ここに end が必要 def acchimuite_hoi それと以下。 end end end # この end を削除 end result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて") puts result1.janken
diego

2022/06/26 15:38

回答ありがとうございます! endの位置は盲点でした...一体何日無駄にしたのだろうか... 追加でお聞きしたいのですが、whileであいこの場合ジャンケンをループさせたいのでtrue,falseを返しているのですが、あいこの場合でもあっち向いてホイにつながってしまいます。 どこかおかしい場所はありますか?
guest

回答1

0

ベストアンサー

インデントがでたらめなので、気づいているのかいないのかわかりませんが、def acchimuite_hoidef jankenの内側にあります。
それ自体は駄目では無いのですが、jankenメソッドの実行が、def acchimuite_hoiのところまで来ないとacchimuite_hoiメソッドは定義されません。

おそらく、def acchimuite_hoidef jankenの外に出せば良いのでは?

投稿2022/06/26 17:06

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問