作成したプログラム

#!/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感想
こうしたほうがいいという考えがうまく形にできず、先生に教えてもらう形になってしまいましたが、確実に仕上げて、進めていきたいです。