游戏设计中的算法题——计算宝物升级所需的资源数
當(dāng)今社會(huì),智能手機(jī)的飛速發(fā)展。使得可以做到人手一部智能手機(jī)。而各種應(yīng)用層出不窮。
手游(手機(jī)游戲)的出現(xiàn),滿足了人們對(duì)打發(fā)碎片時(shí)間的需求。
?
而在游戲中,寶物升級(jí)是最常見的劇情元素之一。而優(yōu)秀的游戲設(shè)計(jì)師,在設(shè)計(jì)寶物升級(jí)系統(tǒng)時(shí),要難易適中,要能把用戶黏合在自己的游戲中,既不能太難,也不能太簡單。那么如何設(shè)計(jì)寶物升級(jí)中的各項(xiàng)參數(shù)就是重中之重。
?
本文重點(diǎn)介紹,給定寶物的設(shè)計(jì)系統(tǒng)的各項(xiàng)參數(shù),計(jì)算寶物升級(jí)所需的資源數(shù)。
?
問題:
某寶物初始是0級(jí),現(xiàn)在要升級(jí)
從0級(jí)升到1級(jí),所需的資源數(shù)為1,成功概率為90%,成功升1級(jí),失敗還是0級(jí);
從1級(jí)升到2級(jí),所需的資源數(shù)為2,成功概率為80%,成功升1級(jí),失敗降1級(jí),降為0級(jí);
從2級(jí)升到3級(jí),所需的資源數(shù)為3,成功概率為70%,成功升1級(jí),失敗降1級(jí),降為1級(jí);
從3級(jí)升到4級(jí),所需的資源數(shù)為4,成功概率為60%,成功升1級(jí),失敗降1級(jí),降為2級(jí);
從4級(jí)升到5級(jí),所需的資源數(shù)為5,成功概率為50%,成功升1級(jí),失敗降1級(jí),降為3級(jí);
問:某寶物從0級(jí)升級(jí)到5級(jí),所需要的資源數(shù)平均是多少?
?
定義一個(gè)函數(shù)F(N,M),M≥N。表示該寶物從N級(jí)升級(jí)到M級(jí)所需的平均資源數(shù)。本題中就是計(jì)算F(0,5)
很明顯
F(N,N)=0;即F(0,0)=0,F(1,1)=0
F(N,M)=F(N,K)+F(K,M),N≤K≤M,F(0,4)=F(0,2)+F(2,4),即F(2,4)=F(0,4)-F(0,2)
?
用簡便表示函數(shù)F(N),即F(N)=F(0,N),那么本題就是計(jì)算F(5)
?
定義PN,為從N-1級(jí)升到N級(jí)的成功的概率
本題中,P1=0.9,P2=0.8,P3=0.7,P4=0.6,P5=0.5
定義LN,為從N-1級(jí)升到N級(jí)所需的資源數(shù)
本題中,N1=1,N2=2,N3=3,N4=4,N5=5
?
言歸正傳,下面分析如何計(jì)算F(N)
先分析F(1)
從0級(jí)升到1級(jí),所需的資源數(shù)為L1。其中(1-P1)的會(huì)失敗,還是停留在0級(jí),這些還是需要從0級(jí)升到1級(jí)。那么,就有個(gè)分析公式
F(1)=L1+(1-P1)×F(1)
F(1)=L1÷P1=1÷0.9=1.111
?
再分析F(2)
從1級(jí)升到2級(jí),所需的資源數(shù)為L2。其中(1-P2)的會(huì)失敗,降級(jí)到0級(jí),這些還是需要從0級(jí)升到2級(jí)。那么,就有個(gè)分析公式
F(2)=F(1)+L2+(1-P2)×F(2)
F(2)=(F(1)+L2)÷P2=(1.111+2)÷0.8=3.889
?
再分析F(3)
從2級(jí)升到3級(jí),所需的資源數(shù)為L3。其中(1-P3)的會(huì)失敗,降級(jí)到1級(jí),這些還是需要從1級(jí)升到3級(jí)。那么,就有個(gè)分析公式
F(3)=F(2)+L3+(1-P3)×F(1,3)
F(3)=F(2)+L3+(1-P3)×(F(3)-F(1))
F(3)=(F(2)+L3-(1-P3)×F(1))÷P3
F(3)=(3.889+3-(1-0.7)×1.111)÷0.7=9.365
?
再分析F(4)
從3級(jí)升到4級(jí),所需的資源數(shù)為L4。其中(1-P4)的會(huì)失敗,降級(jí)到2級(jí),這些還是需要從2級(jí)升到4級(jí)。那么,就有個(gè)分析公式
F(4)=F(3)+L4+(1-P4)×F(2,4)
F(4)=F(3)+L4+(1-P4)×(F(4)-F(2))
F(4)=(F(3)+L4-(1-P4)×F(2))÷P4
F(4)=(9.365+4-(1-0.6)×3.889)÷0.6=19.682
?
再分析F(5)
從4級(jí)升到5級(jí),所需的資源數(shù)為L5。其中(1-P5)的會(huì)失敗,降級(jí)到3級(jí),這些還是需要從3級(jí)升到5級(jí)。那么,就有個(gè)分析公式
F(5)=F(4)+L5+(1-P5)×F(3,5)
F(5)=F(4)+L5+(1-P5)×(F(5)-F(3))
F(5)=(F(4)+L5-(1-P5)×F(3))÷P5
F(5)=(19.682+5-(1-0.5)×9.365)÷0.5=39.999
?
?
結(jié)論是
從0級(jí)升到1級(jí),平均所需的資源數(shù)為P(1)=1.111
從0級(jí)升到2級(jí),平均所需的資源數(shù)為P(2)=3.889
從0級(jí)升到3級(jí),平均所需的資源數(shù)為P(3)=9.365
從0級(jí)升到4級(jí),平均所需的資源數(shù)為P(4)=19.682
從0級(jí)升到5級(jí),平均所需的資源數(shù)為P(5)=39.999
?
下面是通過計(jì)算機(jī)模擬寶物升級(jí)的過程,并做了統(tǒng)計(jì),再求平均數(shù)。一共做了五組,每組1000000次。
?
| ? | 理論值 | 第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
| P(1) | 1.111 | 1.111 | 1.111 | 1.111 | 1.111 | 1.111 |
| P(2) | 3.889 | 3.889 | 3.890 | 3.890 | 3.889 | 3.889 |
| P(3) | 9.365 | 9.367 | 9.365 | 9.368 | 9.363 | 9.364 |
| P(4) | 19.682 | 19.685 | 19.690 | 19.692 | 19.681 | 19.682 |
| P(5) | 39.999 | 40.000 | 40.002 | 40.001 | 39.996 | 39.988 |
?
從上表的數(shù)據(jù)來看,理論值和實(shí)際統(tǒng)計(jì)值差別不大了。說明我們分析的理論值是合理的。
?
綜述:
F(1)=L1÷P1
F(N)=(F(N-1)+LN-(1-PN)×F(N-2))÷PN,當(dāng)N≥2時(shí)。
?
再給一題:
某寶物初始是0級(jí),現(xiàn)在要升級(jí)
從0級(jí)升到1級(jí),所需的資源數(shù)為1,成功概率為100%,成功升1級(jí);
從1級(jí)升到2級(jí),所需的資源數(shù)為2,成功概率為85%,成功升1級(jí),失敗不降級(jí);
從2級(jí)升到3級(jí),所需的資源數(shù)為3,成功概率為75%,成功升1級(jí),失敗不降級(jí);
從3級(jí)升到4級(jí),所需的資源數(shù)為4,成功概率為65%,成功升1級(jí),失敗不降級(jí);
從4級(jí)升到5級(jí),所需的資源數(shù)為5,成功概率為55%,成功升1級(jí),失敗降1級(jí),降為3級(jí);
從5級(jí)升到6級(jí),所需的資源數(shù)為6,成功概率為45%,成功升1級(jí),失敗降1級(jí),降為4級(jí);
從6級(jí)升到7級(jí),所需的資源數(shù)為7,成功概率為35%,成功升1級(jí),失敗降1級(jí),降為5級(jí);
從7級(jí)升到8級(jí),所需的資源數(shù)為8,成功概率為25%,成功升1級(jí),失敗降1級(jí),降為6級(jí);
從8級(jí)升到9級(jí),所需的資源數(shù)為9,成功概率為20%,成功升1級(jí),失敗降1級(jí),降為7級(jí);
從9級(jí)升到10級(jí),所需的資源數(shù)為10,成功概率為15%,成功升1級(jí),失敗降1級(jí),降為8級(jí);
問:某寶物從0級(jí)升級(jí)到10級(jí),所需要的資源數(shù)平均是多少?
?
你的答案是多少?我的答案是7763.564285
轉(zhuǎn)載于:https://www.cnblogs.com/grenet/p/4303266.html
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的游戏设计中的算法题——计算宝物升级所需的资源数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC中JSP取不到Mode
- 下一篇: Activity的taskAffinit