Judge 1-5
NCNU Programming 1042 Judge 1-5
楓之谷是大家的童年回憶,但近年由於外掛猖獗,遊戲公司不堪負荷,造成公司倒閉。
你想重新回味楓之谷,所以決定動手刻一個。其中遊戲角色包括劍士(Swordsman)、法師(Magician),然而這些角色都繼承初心者(Beginner),角色能夠擁有自己的名稱、攻擊力,及自己的攻擊方法、技能方法。但是姓名及攻擊力,不能夠被其他角色的 class 隨意篡改,否則公司又要被外掛攻擊到倒閉了。所以請利用物件導向裡的封裝、繼承等特性,產生這些角色,並完成角色系統的實作。
完成後你覺得好像少了什麼,於是再寫了一個大魔王,並給予大魔王攻擊力。大魔王產生的時候,全部存在的角色會攻擊大魔王。規則:當角色攻擊力比大魔王攻擊力低,就會被殺掉,相反的只要角色攻擊力大於等於大魔王,角色則順利生存,並顯示該角色攻擊方式及隨機顯示其中一種該角色的角色技能,只要大於等於一半以上角色存活,則顯示該次遊戲勝利,否則顯示失敗。
最後遊戲結束之後可以選擇是否要重新產生遊戲。
角色攻擊方式
- 劍士:揮砍
- 法師:法術
角色技能
- 劍士:虎咆嘯,龍咆嘯,氣絕劍
- 法師:冰雷合擊,冰風暴,聖光
程式必達條件
- 名稱
name、攻擊力power、攻擊方法getAttackMethod()、角色技能skill() - 角色技能為隨機顯示!
- 角色的名稱和攻擊力能夠被使用者輸入,且需宣告為
private屬性 - 魔王也需要有自己的 class,
power可宣告為public - 遊戲結束後能輸入是否產生新遊戲
其中一條沒有達到,即使結果跑出來了還是不算通過
輸入說明
- 輸入有幾個角色,假設為
n - 輸入
n次,角色設定:[職業][名稱][攻擊力] - 輸入大魔王:
BOSS[攻擊力] - 遊戲結束後可以選擇是否產生新遊戲
輸出說明
依輸入順序輸出角色,如果生存(即攻擊力 >= 魔王)則輸出名稱 攻擊方法,如果死亡(即攻擊力 < 魔王)則輸出名稱 死亡。最後如果生存人數>=一半,則印出遊戲勝利!!!,否則印出遊戲失敗!!!。
輸入範例
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.