ruby
1コード 2``puts "あっち向いてホイを始めます" 3puts "ジャンケン・・・" 4class JankenAcchimuite 5 def initialize (draw ="あいこ",lose ="負け",win ="勝ち") 6 @draw = draw 7 @lose = lose 8 @win = win 9 end 10 11 def janken 12 #実装する 13 puts "[0]グー,[1]チョキ,[2]パー" 14 player_hand = gets.to_i 15 program_hand = rand(3) 16 17 jankens = ["グー","チョキ","パー"] 18 puts "あなたの手:#{jankens[player_hand]},相手の手:#{jankens[program_hand]}" 19 20 if player_hand == program_hand 21 puts "#{@draw}" 22 return true 23 elsif (player_hand == 0 && program_hand == 2 ) ||( player_hand == 1 && program_hand == 0 )||( player_hand == 2 && program_hand == 1) 24 puts "#{@lose}" 25 return false 26 elsif (player_hand == 0 && program_hand == 1 ) ||( player_hand == 1 && program_hand == 2 )||( player_hand == 2 && program_hand == 0) 27 puts "#{@win}" 28 return false 29 end 30 31 next_game = true 32 33 while next_game 34 next_game = janken 35 end 36 37 end 38 39 def acchimuite_hoi 40 puts "0(上)1(下)2(左)3(右)" 41 player_direction = gets.to_i 42 program_direction = rand(4) 43 directions = ["上","下","左","右"] 44 puts "あなた:#{directions[player_direction]} 相手:#{directions[program_direction]}" 45 46 if player_direction == program_direction 47 if @lose 48 puts "#{@lose}" 49 elsif @win 50 puts "#{@win}" 51 end 52 else 53 puts "#{@draw}" 54 55 end 56 end 57 58 result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて") 59 puts result1.janken 60 result2 = JankenAcchimuite.new("もう一度ジャンケンを行います","負けました","勝ちました") 61 puts result2.acchimuite_hoi 62end 63 64 65、、、 66whileを使用しtrue,falseで戻しているつもりなのですが、ジャンケンがループせずにそのままあっち向いてホイに行ってしまいます。お願いします。
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/07/01 12:47
2022/07/01 15:59
2022/07/02 15:11
2022/07/04 10:34 編集
2022/07/09 08:46