diff --git "a/hero_game/Icon\r" "b/hero_game/Icon\r"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/hero_game/Icon\r"
diff --git a/hero_game/hero.rb b/hero_game/hero.rb
index 77a9a80..b3b6705 100644
--- a/hero_game/hero.rb
+++ b/hero_game/hero.rb
@@ -1,7 +1,5 @@
-class Hero
 
-  MAX_HP = 200
-  MAX_AP = 80
+class Hero
 
   attr_accessor :hp, :name
 
@@ -9,19 +7,8 @@
 
   def initialize(name, hp, ap)
     @name = name
-    
-    if MAX_HP < hp
-      @hp = MAX_HP
-    else
-      @hp = hp
-    end
-
-    if MAX_AP < ap
-      @ap = MAX_AP
-    else
-      @ap = ap
-    end                                       # 設定一個名為 hp（生命值）的 attribute
-
+    @hp = hp
+    @ap = ap
     @alive = true                                   # 英雄剛被創造，所以預設為 true，表示英雄被創造時一定是活著的
 
     # 印出被創造的英雄的 attributes
@@ -47,16 +34,12 @@
     puts "#{enemy.name} 剩下 #{enemy.hp} 點 HP"
     puts ""
 
-    enemy.die?
-  end
-
-  def die?
-    if hp < 1
-      die
+    if enemy.hp < 1                                 # 生命值小於 1，代表死亡(戰敗)
+      enemy.die                                     # 敵人死亡
     end
   end
 
-  private def die                                           # 代表死亡(戰敗)
+  def die                                           # 代表死亡(戰敗)
     @alive = false
     puts "#{@name} 被打倒了"
   end
@@ -68,4 +51,4 @@
   def self.all
     return @@heroes                                 # 回傳包含所有 hero 的 array
   end
-end
+end
\ No newline at end of file
diff --git a/hero_game/holy_knight.rb b/hero_game/holy_knight.rb
index 465197d..a267e85 100644
--- a/hero_game/holy_knight.rb
+++ b/hero_game/holy_knight.rb
@@ -20,6 +20,8 @@
     puts "#{enemy.name} 剩下 #{enemy.hp} 點 HP"
     puts ""
 
-    enemy.die?
+    if enemy.hp < 1                                 # 生命值小於 1，代表死亡(戰敗)
+      enemy.die                                     # 敵人死亡
+    end
   end
 end
\ No newline at end of file
diff --git a/hero_game/mage.rb b/hero_game/mage.rb
index 2a16d1f..d873bb9 100644
--- a/hero_game/mage.rb
+++ b/hero_game/mage.rb
@@ -10,17 +10,11 @@
   # Mage class 需要增加一個 attribute: mp
   # 所以要設定一個屬於魔法師 initialize
 
-  MAX_MP = 10
-
   def initialize(name, hp , ap, mp)
     super(name, hp, ap)                               # 用繼承的語法 super 來設定屬於 Hero 的 attributes，super 會呼叫 Hero 的同名方法 initialize
 
     # 新增一個 attribute: mp (魔法力)
-    if MAX_MP < mp
-      @mp = MAX_MP
-    else
-      @mp = mp
-    end
+    @mp = mp
   end
 
   # Mage class 也需要增加一個 method: fireball
@@ -37,7 +31,9 @@
       puts "#{enemy.name} 剩下 #{enemy.hp} 點 HP"
       puts ""
 
-      enemy.die?
+      if enemy.hp < 1
+        enemy.die
+      end
     else
       # 如果 mp 不夠 3 點，就只能用普通的攻擊，super 會呼叫 Hero 的同名方法 attack
       super(enemy)
diff --git a/hero_game/monster.rb b/hero_game/monster.rb
index 839cb00..ff79de3 100644
--- a/hero_game/monster.rb
+++ b/hero_game/monster.rb
@@ -1,25 +1,11 @@
 class Monster
 
-  MAX_HP = 150
-  MAX_AP = 50
-
   attr_accessor :hp, :name                    # 設定物件外部可以直接使用和修改 name 和 hp 的 attributes
 
   def initialize(name, hp, ap)
     @name = name                              # 設定一個名為 name（名稱）的 attribute
-
-    if MAX_HP < hp
-      @hp = MAX_HP
-    else
-      @hp = hp
-    end
-
-    if MAX_AP < ap
-      @ap = MAX_AP
-    else
-      @ap = ap
-    end                                       # 設定一個名為 hp（生命值）的 attribute
-
+    @hp = hp                                  # 設定一個名為 hp（生命值）的 attribute
+    @ap = ap                                  # 設定一個名為 ap（攻擊值）的 attribute
     @alive = true                             # 怪獸剛被創造，所以預設為 true，表示怪獸創造時一定是活著的
 
     # 印出被創造的怪獸的 attributes
@@ -43,16 +29,12 @@
     puts "#{enemy.name} 剩下 #{enemy.hp} 點 HP"
     puts ""
 
-    enemy.die?
-  end
-
-  def die?
-    if hp < 1
-      die
+    if enemy.hp < 1                                 # 生命值小於 1，代表死亡(戰敗)
+      enemy.die                                     # 敵人死亡
     end
   end
 
-  private def die                                           # 代表死亡(戰敗)
+  def die                                           # 代表死亡(戰敗)
     @alive = false
     puts "#{@name} 被打倒了"
   end
diff --git a/hero_game/play.rb b/hero_game/play.rb
index 84f5f20..86e06b7 100644
--- a/hero_game/play.rb
+++ b/hero_game/play.rb
@@ -1,12 +1,12 @@
 require "./monster"
-require "./mage"
+require "./hero.rb"
 require_relative "holy_knight"
-
+require_relative "mage.rb"
 
 # 建立一個有不同職業 （包括英雄、神聖武士與魔法師）的團隊
-hero = Hero.new("Robinhood", 100000, 20)
-holy_knight = HolyKnight.new("Howard", 100, 3000)
-mage = Mage.new("Merlin",60, 20, 100)
+hero = Hero.new("Robinhood", 100, 20)
+holy_knight = HolyKnight.new("Howard", 100, 30)
+mage = Mage.new("Merlin",60, 20, 10)
 
 # 列印英雄隊伍
 team = Hero.all
