遊戲關卡由老怪 Q 守衛,攻擊力 a、血量 b、每回合回血 c。玩家 P 攻擊力 d、血量 e、每回合回血 f。判斷 P 能否單獨擊敗 Q;若不能,需多少個 P 協作才能獲勝。
假設雙方攻擊力與回血量固定,模擬回合制戰鬥:
public static String fight(int a, int b, int c, int d, int e, int f) {
int lifeQ = b, lifeP = e;
while (true) {
// 玩家攻擊
lifeQ -= d;
if (lifeQ <= 0) return "P success";
// 怪物回血
if (b > lifeQ) lifeQ = Math.min(lifeQ + c, b);
// 怪物反擊
lifeP -= a;
if (lifeP <= 0) return "Q success";
// 玩家回血
if (e > lifeP) lifeP = Math.min(lifeP + f, e);
}
}
若單人無法獲勝,可引入多玩家協作模型:每回合總傷害 = n × d,總血量 = n × e(或共享血池),重新模擬或用數學公式推導最小 n。