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.