看板 GameDesign 關於我們 聯絡資訊
※ 引述《KiwiSoda01 (奇異果汽水)》之銘言: : 假設在一個pad類型的遊戲, : 有兩個敵人,你希望給玩家覺得這兩個敵人, : 給玩家帶來的威脅程度是一樣的, : 且這兩個敵人一起出現。 : 其中一個敵人每回合都打1000傷害, : 另一個敵人則兩回合才攻擊一次, : 請問後者要打出的傷害,比2000高還是低, : 才會符合當初的需求? : 順便一提,我問過幾個同事,答案都跟我不一樣。 : 手機排版請見諒。 敵方攻擊: A1 (每回合一次), A2 (每兩回合的第二回合攻擊) 敵方血量: H 自己攻擊: A 簡化設定,假設玩家只有攻擊其中一個敵人一種可能 (無玩家回血機制), 且玩家先攻 玩家依照威脅度有兩種策略: 先殺敵人1 (S1), 先殺敵人2 (S2) (為合乎情境無論採取何種策略玩家所受總傷害需大於玩家血量) S1: 總回合數: ceil(H/A) + ceil(H/A) = 2 * ceil(H/A) 總受傷害: (ceil(H/A) - 1) * A1 + floor((ceil(H/A) + ceil(H/A) - 1) / 2) * A2 S2: 總回合數: ceil(H/A) + ceil(H/A) = 2 * ceil(H/A) 總受傷害: (ceil(H/A) + ceil(H/A) - 1) * A1 + floor((ceil(H/A)-1)/2) * A2 如果要令 S1 與 S2 選擇相仿, 則 S1 總受傷害要等於 S2 總受傷害: (ceil(H/A)-1)*A1 + floor((2*ceil(H/A)-1)/2)*A2 == (2*ceil(H/A)-1)*A1 + floor((ceil(H/A)-1)/2)*A2 (floor((2*ceil(H/A)-1)/2) - floor((ceil(H/A)-1)/2)) * A2 == ((2*ceil(H/A)-1) - (ceil(H/A)-1)) * A1 以下省略計算過程... A2 = 2 * A1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.83.198 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1432042269.A.C26.html ※ 編輯: Feis (140.122.83.198), 05/19/2015 21:46:27
Feis: 一開始很開心地算錯了QQ 05/19 21:50
pttworld: 嗯,拿掉ceil,floor,令T=H/A,可以很快得解。 05/19 21:59
Feis: 請教一下甚麼時候可以拿掉 floor 跟 ceil 阿 05/19 22:00
pttworld: 不知道的。當拿掉發現解等同一般認知,就找到key了。 05/19 22:03
pttworld: 要設計出不一樣的變化就是調整函式而不是改公式。 05/19 22:04
Feis: 那 floor(1.2) / ceil(1.2) == 1 ? 蠻有趣的 05/19 22:04