回分類題庫
g002: B.生死鬥
關鍵字: NPSC 2005 國中組初賽

測資點 : 2 | Time Limit : 10000 ms | Memory Limit : 128000 KB
Accepted : 178 Times / 169 Users | Submit : 421 Times / 176 Users | Accepted rate : 96%
題目加入時間 : 2011-12-06 10:00

Content: 简体中文

小批平常喜歡玩角色扮演遊戲。而這類遊戲總是少不了打打一般怪物、賺錢賺經驗值、買更強裝備、升級變強、打魔王過關的循環。然而小批並不是個有耐心慢慢練功的玩家,他寧可冒著被魔王輕鬆擺平的風險,也不願意多練一點功。

有一天,他想要試著寫一個簡化過的戰鬥模擬程式。輸入遊戲雜誌上所列出的各魔王的屬性:生命力、攻擊力、防禦力。再輸入小批在遊戲中使用人物的生命力、攻擊力、防禦力。接著模擬回合制的戰鬥模式,從第1回合開始,假設每回合都由玩家先攻擊魔王一次。若魔王還活著,再由魔王攻擊玩家一次。而戰鬥中計算單次攻擊導致被攻擊者失血的公式如下:

被攻擊者被攻擊一次所損失的生命力=攻擊者的攻擊力-被攻擊者的防禦力

請注意,當被攻擊者的防禦力大於或等於攻擊者的攻擊力時,則視為被攻擊者完全擋住攻擊方的攻擊,不損失任何生命力。而在這裡所模擬的戰鬥過程中雙方不能逃跑,因此必須打到有一方倒下為止 (玩家或魔王生命力小於或等於零),此時請記錄這是第幾回合。

舉例來說,玩家生命力20,戰鬥力10,防禦力2,而魔王生命力30,戰鬥力6,防禦力1,模擬戰鬥的過程如下:

回合動作玩家生命力魔王生命力
戰鬥前 2030
第1回合玩家攻擊10-1=9點2021 (-9)
第1回合魔王攻擊6-2=4點16 (-4)21
第2回合玩家攻擊9點1612 (-9)
第2回合魔王攻擊4點12 (-4)12
第3回合玩家攻擊9點123 (-9)
第3回合魔王攻擊4點8 (-4)3
第4回合玩家攻擊9點8-6 (-9)
戰鬥結束(因為魔王生命力<=0)  

 

根據後面的輸出訊息描述,你的程式應輸出:
「You win in 4 round(s).」

有了這個程式,小批在找魔王決鬥之前就可以先模擬戰鬥結果,以免無謂地犧牲。你是小批的朋友中,最會寫程式的高手。你可以完成以上小批所描述的戰鬥模擬程式嗎?

Input:

你的程式必須讀入一個輸入檔,檔案有許多行的非負整數,每一行都剛好6個數字,代表一次戰鬥的模擬。每一行的6個數字依序是玩家的生命力、玩家的攻擊力、玩家的防禦力、魔王的生命力、魔王的攻擊力、和魔王的防禦力。這些數字都將介於1到10000的範圍內。你可以假設至少有一方的攻擊力會大於另一方的防禦力,也就是說,戰鬥一定會在有限回合內終止。
當程式讀到某一行的6個數字都為0時,請結束執行。

Output:

你的程式必須將執行時的訊息寫在一個輸出檔中。對每一次戰鬥模擬,請輸出一行訊息。當玩家於第n回合擊倒魔王獲勝時,請輸出「You win in n round(s).」。反之,當魔王於第n回合擊倒你時,請輸出「You lose in n round(s).」。

Sample Input:help

若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。
20 10 2 30 6 1
20 8 1 100 30 10
0 0 0 0 0 0

Sample Output :

You win in 4 round(s).
You lose in 1 round(s).

Hint :

Author :

NPSC 2005 國中組初賽 (管理員:sagit)

  Solve it!   Status Forum