作者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
1F:推 sanat:也就是说 要在瞬间冲出最大增加率要多城徵兵 02/21 01:05
2F:→ etrexetrex:如果这个模拟是对的 不管用哪个城买结果都一样 02/21 01:06
3F:→ etrexetrex:但是兵力产出的时间会不一样啦... 02/21 01:06
4F:→ sanat:但是长时间来看单城徵兵较有效率罗 02/21 01:06
5F:→ etrexetrex:如果你的民意 超过人口上限 就不会输在终点 02/21 01:07
6F:→ sanat:那应该要超出很多吧@@ 不然从模拟来看 大约一半就输了 02/21 01:10
7F:→ etrexetrex:输1个人没差吧 02/21 01:13
8F:→ etrexetrex:总之我的结论是:并无显着差异 02/21 01:13
9F:→ etrexetrex:如果要真正的答案就要有人真的去测试了 0.0 02/21 01:13
10F:→ etrexetrex:在游戏中测试... 02/21 01:14
11F:推 kai0401:其实你这边人口有小数点 所以会跟上面数学式有落差 02/21 01:18
12F:→ kai0401:不过满漂亮的 可以把座标扩大一点 XD 02/21 01:19
13F:→ etrexetrex:我想在游戏中应该也有小数点吧... 02/21 01:40
14F:推 kai0401:没有 因为他是每多一个人才改变一次成长率... 02/21 01:43
15F:→ etrexetrex:0.0 02/21 02:05
16F:推 wope:晚一点再来看一下问题出在哪里 有点神奇的结果@@ 02/21 08:18
17F:→ wope:提供了不同的思考方向 晚点再来看程式码 02/21 08:20
18F:推 hitlerx:老实说,整串看下来,我不知道该收哪篇 XDDD 02/23 09:17