Judge 1-5

NCNU Programming 1042 Judge 1-5

楓之谷是大家的童年回憶,但近年由於外掛猖獗,遊戲公司不堪負荷,造成公司倒閉。

你想重新回味楓之谷,所以決定動手刻一個。其中遊戲角色包括劍士(Swordsman)法師(Magician),然而這些角色都繼承初心者(Beginner),角色能夠擁有自己的名稱攻擊力,及自己的攻擊方法技能方法。但是姓名及攻擊力,不能夠被其他角色的 class 隨意篡改,否則公司又要被外掛攻擊到倒閉了。所以請利用物件導向裡的封裝、繼承等特性,產生這些角色,並完成角色系統的實作。

完成後你覺得好像少了什麼,於是再寫了一個大魔王,並給予大魔王攻擊力。大魔王產生的時候,全部存在的角色會攻擊大魔王。規則:當角色攻擊力比大魔王攻擊力低,就會被殺掉,相反的只要角色攻擊力大於等於大魔王,角色則順利生存,並顯示該角色攻擊方式及隨機顯示其中一種該角色的角色技能,只要大於等於一半以上角色存活,則顯示該次遊戲勝利,否則顯示失敗

最後遊戲結束之後可以選擇是否要重新產生遊戲。

角色攻擊方式

  • 劍士:揮砍
  • 法師:法術

角色技能

  • 劍士:虎咆嘯,龍咆嘯,氣絕劍
  • 法師:冰雷合擊,冰風暴,聖光

程式必達條件

  • 名稱 name、攻擊力 power、攻擊方法getAttackMethod()、角色技能 skill()
  • 角色技能為隨機顯示!
  • 角色的名稱和攻擊力能夠被使用者輸入,且需宣告為 private屬性
  • 魔王也需要有自己的 class,power 可宣告為 public
  • 遊戲結束後能輸入是否產生新遊戲

其中一條沒有達到,即使結果跑出來了還是不算通過

輸入說明

  1. 輸入有幾個角色,假設為 n
  2. 輸入 n 次,角色設定:[職業] [名稱] [攻擊力]
  3. 輸入大魔王: BOSS [攻擊力]
  4. 遊戲結束後可以選擇是否產生新遊戲

輸出說明

依輸入順序輸出角色,如果生存(即攻擊力 >= 魔王)則輸出名稱 攻擊方法,如果死亡(即攻擊力 < 魔王)則輸出名稱 死亡。最後如果生存人數>=一半,則印出遊戲勝利!!!,否則印出遊戲失敗!!!

輸入範例

3
劍士 我是阿宅 60
法師 魔法的力量 10
法師 唯我獨尊 100
Boss 50

輸出範例

我是阿宅 揮砍 龍咆嘯
魔法的力量 死亡 
唯我獨尊 法術 聖光

遊戲勝利!!!
要產生一個新遊戲嗎? Y or N:
遊戲首先輸入角色個數及角色

再來輸入Boss

如果存活人數大於等於一半,產生勝利結果

如果存活人數小於一半,產生失敗結果

最後不論遊戲勝利或失敗,輸入Y可以重新玩遊戲

輸入N則程式結束

Hint

  • 有 3 個角色(Beginner, Swordsman, Magician)的 class
  • 1 個魔王(Boss)的 class
  • 1 個主程式(Game)的 class

Class ActionEvent from java.lang.Math

  • public static double random()

    Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range.

แก้ไขครั้งสุดท้าย: อาทิตย์, 1 พฤษภาคม 2016, 1:03AM