ジャンケンで自分負け、相手勝ちの場合にも勝ちの判定になってしまいます。
結果を分けるようにするにはどうやって改善したらよろしいでしょうか?
ruby
1コード 2```puts "あっち向いてホイを始めます" 3puts "ジャンケン・・・" 4 5class JankenAcchimuite 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 if player_hand < 0 || 2 < player_hand then 17 puts "無効な値です" 18 end 19 program_hand = rand(3) 20 21 jankens = ["グー","チョキ","パー"] 22 puts "あなたの手:#{jankens[player_hand]},相手の手:#{jankens[program_hand]}" 23 24 if player_hand == program_hand 25 puts "#{@draw}" 26 return true 27 elsif (player_hand == 0 && program_hand == 2 ) ||( player_hand == 1 && program_hand == 0 )||( player_hand == 2 && program_hand == 1) 28 puts "#{@lose}" 29 return false 30 elsif (player_hand == 0 && program_hand == 1 ) ||( player_hand == 1 && program_hand == 2 )||( player_hand == 2 && program_hand == 0) 31 puts "#{@win}" 32 return false 33 end 34 end 35 36 def acchimuite_hoi 37 puts "0(上)1(下)2(左)3(右)" 38 player_direction = gets.to_i 39 program_direction = rand(4) 40 directions = ["上","下","左","右"] 41 puts "あなた:#{directions[player_direction]} 相手:#{directions[program_direction]}" 42 43 if player_direction == program_direction 44 if @win 45 puts "#{@win}" 46 return false 47 elsif @lose 48 puts "#{@lose}" 49 end 50 return false 51 end 52 if player_direction != program_direction 53 puts "#{@draw}" 54 end 55 return true 56 end 57 58 59while 60 result1 = JankenAcchimuite.new("あいこ","あっち向いて","あっち向いて") 61 next_game = true 62 while next_game 63 next_game = result1.janken 64 end 65 result2 = JankenAcchimuite.new("もう一度ジャンケンを行います","負けました","勝ちました") 66 if result2.acchimuite_hoi == false 67 if @win 68 puts "勝ちました" 69 elsif @lose 70 puts"負けました" 71 end 72 break 73 end 74end

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/16 08:46
2022/09/16 13:09
2022/09/16 16:05
2022/09/16 17:16
2022/09/17 10:13 編集
2022/09/17 10:46 編集