Newer
Older
program / rpg1.rb
@houtin houtin on 25 Sep 2021 3 KB いったん同期
#!/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行まで条件分岐していますが、あてはまらない条件ってありますかね。