作成したプログラム #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- def battle(name,hp,attack,myhp) printf("%sが現れた\n",name) while true printf "貴方の攻撃\n" srand damage = rand(15)+5 hp -= damage printf("%sの攻撃\n",name) srand damage = rand(attack)+5 printf"おりゃ\n" printf("%sダメージを与えた\n",damage) myhp -= damage printf"ぐわぁ" printf("攻撃によって%sまで体力が減った\n",myhp) if myhp <= 0 print"目の前が真っ暗になった\n" exit elsif hp <=0 print"戦いに勝利した\n" return myhp end end end myhp = 100 print"さあどっち?(1か2か3)\n" first = gets.chomp!.to_i if first == 1 name="ゴリラ" hp =30 attack = 2 myhp = battle(name,hp,attack,myhp) else print"誰もいない。道を変えよう\n" end print"さあどっち?(1か2か3)\n" second = gets.chomp!.to_i if second == 1 || (second ==2 && first == 2) name="虎" hp = 20 attack = 5 myhp = battle(name,hp,attack,myhp) else print"誰もいない。道を変えよう\n" end print"さあどっち?(1か2か3)\n" first = gets.chomp!.to_i if first == 3 name="ドラゴン" hp = 50 attack = 20 myhp = battle(name,hp,attack,myhp) else print"誰もいない。道を変えよう\n" end 2実行結果 ED-SA101-012{cxxxxxx}% ./battle.rb [~/program] さあどっち?(1か2か3) 1 ゴリラが現れた 貴方の攻撃 ゴリラの攻撃 おりゃ 5ダメージを与えた ぐわぁ攻撃によって95まで体力が減った 貴方の攻撃 ゴリラの攻撃 おりゃ 5ダメージを与えた ぐわぁ攻撃によって90まで体力が減った 戦いに勝利した さあどっち?(1か2か3) 2 誰もいない。道を変えよう さあどっち?(1か2か3) 3 ドラゴンが現れた 貴方の攻撃 ドラゴンの攻撃 おりゃ 10ダメージを与えた ぐわぁ攻撃によって80まで体力が減った 貴方の攻撃 ドラゴンの攻撃 おりゃ 13ダメージを与えた ぐわぁ攻撃によって67まで体力が減った 貴方の攻撃 ドラゴンの攻撃 おりゃ 10ダメージを与えた ぐわぁ攻撃によって57まで体力が減った 貴方の攻撃 ドラゴンの攻撃 おりゃ 19ダメージを与えた ぐわぁ攻撃によって38まで体力が減った 貴方の攻撃 ドラゴンの攻撃 おりゃ 5ダメージを与えた ぐわぁ攻撃によって33まで体力が減った 貴方の攻撃 ドラゴンの攻撃 おりゃ 5ダメージを与えた ぐわぁ攻撃によって28まで体力が減った 戦いに勝利した 3説明 授業内で作成したbattle.rbを補強する形で作成。体力が0になるまで繰り返すために25行目に elsif hp <=0 print"戦いに勝利した\n" return myhp を追加し hpを参照し0になるまで繰り返す。myhpを次に引き継ぐために書くモンスターの項目に、 myhp = battle(name,hp,attack,myhp)を追加。授業内でっ作成したモンスターにドラゴンを追加、3体目のもモンスターとする。 4感想 こうしたほうがいいという考えがうまく形にできず、先生に教えてもらう形になってしまいましたが、確実に仕上げて、進めていきたいです。