#!/usr/bin/env ruby # -*- coding: utf-8 -*- puts("名前を入れてね") namae=gets.chomp printf("僕は%s!!",namae) puts("今日はモンスターを倒すんだ。") while true puts("まずは武器を選ぼう。") puts("バット 杖 素手") buki=gets.chomp if buki=="バット" puts("バットにしよう") break elsif buki=="杖" puts("杖にしよう") break elsif buki=="素手" puts("素手で戦おう") break else puts("何にしようかなぁ") end #↑ここにredoとかいれないのであればwhileにする必要がないですね end puts("モンスターだ!") puts("スライムがあらわれた") suraimu=10 zibun=10 kougekiryoku=3 kaisin=10 while suraimu>1&&zibun>1 #この条件だと、1を選択し続けるとプログラムが進みませんでした # printf("%sのHP 10\n",namae) #コメントアウト printf("%sのHP %s\n",namae,zibun) puts("どうする?") puts("1=攻撃 2=にげる 3=話しかける") koudou=gets.chomp.to_i if koudou==1 printf("%sの攻撃\n",namae) printf("%sは%sでぶん殴った\n",namae,buki) printf("スライムに%dのダメージ\n",kougekiryoku) suraimu-=3 #←「3」はkougekiryokuの「3」でしょうか。そうであれば「suraimu-=kougekiryoku」にしましょう elsif koudou==2 printf("%sはにげだした\n",namae) puts("しかし回り込まれてしまった") redo # elsif koudou==3 # printf("%sはスライムに話しかけた\n",namae) # for kaiwa in["こんにちは","ぼくは攻撃しませんよ","仲間になりませんか"] # kaiwa=gets.chomp #getsだと入力を求められてしまうのでコメントアウト # printf("%sはスライムに話しかけた\n",namae) #コメントアウトにしてforの外へ移動 # printf("%s「%s」\n",namae,kaiwa) # break #for文を3回繰り返すので、ここにbreakがあると繰り返せずに終わってしまう elsif koudou == 3 kaiwa=["こんにちは","ぼくは攻撃しませんよ","仲間になりませんか"] printf("%sはスライムに話しかけた\n",namae) printf("%s「%s」\n,",namae,kaiwa.shift) break else puts("そんな行動はできない") redo end puts("スライムの攻撃") printf("%sに%dのダメージ\n",namae,kougekiryoku) zibun-=3 # printf("%sのHP %d\n",namae,zibun) end puts("どうする?") puts("1=攻撃 2=にげる 3=話しかける") koudou=gets.chomp.to_i if suraimu==1&&koudou==1||koudou==3 puts("スライムはにげだした") elsif suraimu>1&&zibun==1 printf("%sの攻撃\n",namae) printf("%sは%sでぶん殴った\n",namae,buki) printf("スライムに%dのダメージ\n",kougekiryoku) suraimu-=3 elsif suraimu==1||zibun==1&&koudou==2 printf("%sはにげだした\n,namae") elsif zibun==1&&suraimu>1 puts("スライムの攻撃") printf("%sに%dのダメージ\n",namae,kougekiryoku) zibun-=1 printf("%sのHP %d\n",namae,zibun) printf("%sは死んでしまった") elsif zibun==1&&suraimu==10&&koudou==2 puts("スライムが仲間になりたそうな目でこちらを見ている") puts("どうする?") puts("1=攻撃 2=仲間にする") sentaku=gets.chomp.to_i if sentaku==1 puts("スライムは油断していた") puts("かいしんのいちげき") printf("スライムに%dのダメージ\n",kaisin) suraimu-=10 puts("スライムを倒した") end elsif sentaku==2 puts("スライムが仲間になった") puts("RPG1 おしまい") end #80〜121行まで条件分岐していますが、あてはまらない条件ってありますかね。