作者etrexetrex (moonet)
看板Ikariam
標題Re: [問題] 買兵時的人口恢復問題
時間Sat Feb 21 00:58:06 2009
== 程式測試的結果:==
以動畫方式顯示
http://et284vu065k3.googlepages.com/ikariam1.html
請在左上的框框輸入要買幾個兵 (建議100,不過你要輸入超過1000也可以)
== 附上原始檔 (提供給會用flash的人看) ==
http://et284vu065k3.googlepages.com/ikariam1.fla
== 附上原始碼 ==
var unitL = (A0._x - this["A-100"]._x)/100;
var n;
var t;
function init()
{
n = buy.text;
t = 0;
A1._x = A0._x - unitL*n;
A2._x = A0._x - unitL*n/2;
A3._x = A0._x - unitL*n/2;
}
function run()
{
var A1人口 = (A1._x - A0._x + (n * unitL))/unitL;
var A2人口 = (A2._x - A0._x + (n/2 * unitL))/unitL;
var A1人口成長率 = (n - A1人口)/50;
var A2人口成長率 = (n/2 - A2人口)/50;
A1txt.text = "人口 " + int(A1人口*100)/100 + " 人\n";
A1txt.text +="人口成長率" + int(A1人口成長率*100)/100 + " 人";
A2txt.text = "人口 " + int(A2人口*2*100)/100 + " 人\n";
A2txt.text +="人口成長率" + int(A2人口成長率*100)/100 + " 人";
timeTxt.text = "經過" + t + "小時";
compareTxt.text = "藍色人口減綠色人口 = " + int((A1人口 - A2人口*2)*100)/100;
A1._x += A1人口成長率;
A2._x += A2人口成長率;
A3._x += A2人口成長率;
t++;
}
GO.onPress = function()
{
init();
this.onEnterFrame = run;
}
==
簡單說明一下:
A0 和 A-100 是數線上的黑點
A1 是藍點
A2 是綠點
程式計算出目前人口和人口成長率
每0.03秒視為1小時並計算1次人口成長 (人口 = 人口 + 人口成長率)
程式只顯示到小數點後第2位,但實際計算值是到小數點後第8位以上
== 結論 ==
在前半段的部分差異不大
但在終點前由於浮點數的關係,綠點因浮點數限制 (值太小) 無法前進
在人口上限的部分落敗
--
blog:
http://etrex.blogspot.com/
site:
http://web.ntust.edu.tw/~B9409041/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.166.1
推 sanat:也就是說 要在瞬間衝出最大增加率要多城徵兵 02/21 01:05
→ etrexetrex:如果這個模擬是對的 不管用哪個城買結果都一樣 02/21 01:06
→ etrexetrex:但是兵力產出的時間會不一樣啦... 02/21 01:06
→ sanat:但是長時間來看單城徵兵較有效率囉 02/21 01:06
→ etrexetrex:如果你的民意 超過人口上限 就不會輸在終點 02/21 01:07
→ sanat:那應該要超出很多吧@@ 不然從模擬來看 大約一半就輸了 02/21 01:10
→ etrexetrex:輸1個人沒差吧 02/21 01:13
→ etrexetrex:總之我的結論是:並無顯著差異 02/21 01:13
→ etrexetrex:如果要真正的答案就要有人真的去測試了 0.0 02/21 01:13
→ etrexetrex:在遊戲中測試... 02/21 01:14
推 kai0401:其實你這邊人口有小數點 所以會跟上面數學式有落差 02/21 01:18
→ kai0401:不過滿漂亮的 可以把座標擴大一點 XD 02/21 01:19
→ etrexetrex:我想在遊戲中應該也有小數點吧... 02/21 01:40
推 kai0401:沒有 因為他是每多一個人才改變一次成長率... 02/21 01:43
→ etrexetrex:0.0 02/21 02:05
推 wope:晚一點再來看一下問題出在哪裡 有點神奇的結果@@ 02/21 08:18
→ wope:提供了不同的思考方向 晚點再來看程式碼 02/21 08:20
推 hitlerx:老實說,整串看下來,我不知道該收哪篇 XDDD 02/23 09:17