Guest User

Untitled

a guest
May 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. class Character
  2. attr_accessor :hp, :mp, :name
  3.  
  4. def initialize(name)
  5. @hp = 100
  6. @mp = 100
  7. @name = name
  8. end
  9.  
  10. def attack(enemy) # enemy<敵>
  11. dam = rand(6) + 5 # 5~10のダメージを与える
  12. enemy.hp -= dam
  13. puts "#{@name}の物理攻撃!!"
  14. puts "#{enemy.name}に#{dam}pointのダメージを与えた"
  15. puts "残り#{enemy.hp}HPになった"
  16. end
  17.  
  18. def magic(enemy)
  19. if @mp >= 20 then
  20. dam = rand(16) + 5 # 5~20のダメージを与える
  21. @mp -= 20
  22. enemy.hp -= dam
  23. puts "#{@name}の魔法攻撃!!"
  24. puts "#{enemy.name}に#{dam}pointのダメージを与えた"
  25. puts "残り#{enemy.hp}HPになった"
  26. else
  27. puts "MPが不足して魔法が使えなかった"
  28. end
  29. end
  30. end
  31.  
  32. class Hero < Character
  33. def portion()
  34. @hp += 50
  35. if @hp > 100 then
  36. @hp = 100
  37. end
  38. puts "#{@name}は薬を使った!!"
  39. puts "HPが#{@hp}に回復した"
  40. end
  41. end
  42.  
  43. class Monster < Character
  44. attr_accessor :trophy #trophy<戦利品>
  45.  
  46. def initialize(name,trophy)
  47. @trophy = trophy
  48. super(name)
  49. end
  50. end
  51.  
  52. h = Hero.new("ビーマックス")
  53. m = Monster.new("スライム","聖剣エクスカリバー")
  54.  
  55. until h.hp <= 0 or m.hp <= 0
  56. puts "#{h.name}のターン"
  57. puts "1.攻撃 2.魔法 3.薬"
  58.  
  59. case gets.to_i
  60. when 1 then
  61. h.attack(m)
  62. when 2 then
  63. h.magic(m)
  64. when 3 then
  65. h.portion()
  66. else
  67. puts "うっかりして攻撃のチャンスを逃した"
  68. end
  69.  
  70. puts
  71. puts "press EnterKey"
  72. gets
  73.  
  74. case rand(2) + 1
  75. when 1 then
  76. m.attack(h)
  77. when 2 then
  78. m.magic(h)
  79. end
  80.  
  81. puts
  82. puts "#{h.name}:HP #{h.hp}:MP #{h.mp}"
  83. puts "#{m.name}:HP #{m.hp}:MP #{m.mp}"
  84. puts
  85. end
Add Comment
Please, Sign In to add comment