设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
查看: 8328|回复: 2

[原创] 文明三征服(C3C)中城市腐败(Corruption)的计算

[复制链接]
发表于 2009-10-24 02:47:43 | 显示全部楼层 |阅读模式
文明三征服(C3C)中城市腐败(Corruption)的计算

- Jacky

参考文章:
[1] Everything About Corruption: C3C Edition <http://www.civfanatics.com/civ3/strategy/corruption_c3c.php>;
[2] C3C分析与决策 (一):城市布局与反腐败 <http://www.civclub.net/html_c3/c3_h009.html>;

谢谢[2]的文章,让我开始了解到文明三中腐败的计算方法。本文试图基于原文[1],修正一些[2]中错误的表述。
文中表述不正确之处,欢迎方家指正。

什么是城市腐败:

城市里有三种产出:粮食、金币和盾牌。这里广义上的“城市腐败”实际上包括两个部分,即商业上损失金币的“贪污”和生产上损失盾牌的“浪费”。在大部分情况下,下面的公式对这两者都适用,如有不同我会单独指出。
本文讨论的内容主要包括城市反腐败建筑(Improvment)、反腐败奇迹(Wonder)和“我们爱国王日”的狂欢(WLTKD),但不包括警察(Policeman)的作用。

总论:

腐败有两个来源,即由距离(distance)产生的 Cd 和城市排名(rank)产生的 Cr ,均为百分比。那么总体的腐败C就是两者之和(这点[2]的说法不对),即:
C = Cd + Cr

但是,这个值是有上限的,与城市内部反腐败建筑和反腐败奇迹的个数有关系。即:
MaxC = 90% - 10% * Ni - 70% * Nwc

Ni 是城市内反腐败建筑的个数。
Nwc 是城市内反腐败奇迹的个数。

举例来说,对于一个拥有一座法院(Ni=1)和一座紫禁城(Nwc=1)的城市而言,C的最高上限是90% - 10%*1 - 70%*1 = 10%。也就是说,无论Cd或是Cr是多少,该城最多产生10%的腐败。

征服版本差异因素:
在早期版本中,对于距离的计算是以该城市到与之最近的1)首都或, 2)反腐败奇迹如紫禁城为准。在现在的版本中,以该城市到首都的距离为准。

由距离产生的腐败(Cd):

一个常数 MaxD = (MapW + MapH) / 4,其中 MapW 和 MapH 分别指地图的长与宽。例:对于160*160的地图,MaxD = 80,即地图中心点到边的距离。

下面计算腐败的依据:距离(distance)。

对于非共产政体,距离为(向下取整):
d = max(x,y) + min(x,y)/2

对于共产政体,距离为
d = MaxD / 4

举例:对于前述160*160地图,首都位置在(80, 80),城市A在(70, 75),则非共产政体下距离d = 10 + 5/2 = 12,而共产下距离恒定为d = 80 / 4 = 20。

得到距离d后,我们将依据城市的建设状况,来调整距离,得到da:
da = min(Gd * t * d, MaxD)

Gd 选择与政体有关,取值分别为150%(猖獗腐败的政体,如专制),75%(极少腐败的政体,如民主)和100%(其他各种政体,如共产)。
t 贸易通路情况,取值分别为125%(未进入贸易网)和100%(在贸易网内)。

可以看到政体和是否进入贸易网将会调整距离的大小。例如对于上述城市A,如果在游戏初期,很有可能得到的是150% * 125%即187.5%的惩罚放大。距离从12猛增到22。

这里t所指的贸易通路,并不关心指城市周围是否修建有道路,而是指该城市是否在贸易网内。例如在发达社会中,有机场没道路一样被认为进入了贸易网。

无论惩罚为多少,Gd*t*d的值都不能超过MaxD的大小。

最后我们迎来了计算距离产生腐败Cd的时刻:
Cd = 50%^Ni * (da / MaxD)

Ni 前面已经介绍过,是城市内反腐败建筑的个数。
da 则是前面经过调整的距离值。

可以看出,城市反腐败建筑的个数非常重要,它能成倍地减少由距离产生的腐败。多一个建筑,减一半腐败。

在WLTKD的情况下,盾牌“浪费”减半。

与[2]中提到的不同,共产制下的城市同样会受到上述计算的约束。即建设反腐败建筑和连入贸易网的原则对共产制下城市一样有效。

举例,对于一个连入了贸易网,有一个法院的共产制城市,无论它在地图的哪个角落,由距离产生的腐败均为:50% * 25% = 12.5%。

由城市排名(rank)产生的腐败(Cr):

以下是关于城市排名(rank)的概念,摘编自[2],来源于[1]:
  • 首先不要从字面意思上把它理解成建城的先后顺序,那就大错特错了。
  • 某个城市距离首都的远近比起其他所有城市来能排第几;
    比如天津、上海按照距离首都北京的远近,它们的排名分别是1、2。但如果在天津和上海中间又新建立了一座城市广州,则天津、广州、上海排名分列1、2、3,与广州的建城时间无关。
  • 如果有几个距离首都一样远的城市,那么它们的rank按照城市建立的先后顺序排定。
两个“最优城市数”:Nopt (number of optimal city) 和 OCN (optimal city number)。
OCN是在编辑器中指定的,根据地图大小不同,是一个基础计算参数。
Nopt是在游戏中为每个城市计算得出的。注意,这不是一个全局量——每个城市根据自己的不同,有不同的Nopt! 它可以看作是OCN的修正。Nopt越大,腐败越少。
这两个名词的中文翻译相同,所以当交流发生混淆时请用英文区分。。。

计算OCN的修正:a
a = L * (100% + c + Gr + Gp*Nwe) + 25%*Ni

L 由选择难度带来的修正,在编辑器里可修改。从易到难分别为100%至50%不等。
c 商业文明修正,取值为25%(商业文明)和0%(其他文明)。
Gr 选择与政体有关,取值分别为10%(极少腐败的政体,如民主),200%(平均化的政体,如共产),0%(其他政体,如君主、封建)。
Gp 共产制的标志,取值分别为300%(平均化政体,如共产)和37.5%(如民主、封建)。
Nwe 是该文明拥有反腐败奇迹的个数。
Ni 前面已经介绍过,是城市内反腐败建筑的个数。前面的参数都是该文明全局的,只有这个参数是和城市相关的。

由此看出,在共产制下,会得到极大的反腐败修正(Gr = 200%),并最大化反腐败奇迹的作用(Gp = 300%)。这个作用极其明显。例如,有一个反腐败奇迹的情况下,共产制政体会得到600%的加成,而民主政体只有区区147.5%。

这样,我们就可以计算出每个城市的Nopt:
Nopt = max(OCN * a, 1)

基本上就是OCN乘以修正数,并保证至少比1大。

在WLTKD的情况下,针对盾牌“浪费”计算时,Nopt为以上计算值的125%。(在这点上,[2]的说法是不对的。)

最后,我们就得到由城市排名产生的腐败Cr。

当城市排名R < Nopt时,有:
Cr = R / (2 * Nopt)

当城市排名R >= Nopt时,有:
Cr = (2 * R - Nopt) / (2 * Nopt)

可以看出,城市在R = Nopt的时候产生拐点,腐败比率Cr的增长速度陡然变快了。因此,我们称排名在Nopt之前的城市为“优化城市”。

再细看一些,较大的Nopt不但能使“拐点”靠后来增多“优化城市”的数量;同时也增大了计算分母,使Cr更进一步得到降低。例如,考虑到上面共产政体有600%加成而民主政体147.5%的计算,对同一个城市而言,共产政体下的由排名带来的腐败可能只有民主政体下的24.6%,接近1/4。

综上所述:
  • 建不建反腐败奇迹如紫禁城很重要(增大Nwe);在哪儿建不重要(对距离没有影响)。
  • 在计算距离产生的腐败上,民主政体强;在计算排名产生的腐败上,共产政体强。所以前期距离不远,城市不多的情况下,优先民主制;后期排名较大,城市很多的情况下,优先共产制。
讨论完毕,欢迎指正。

[ 本帖最后由 yesme 于 2009-10-26 13:11 编辑 ]

评分

2

查看全部评分

发表于 2009-10-24 16:56:36 | 显示全部楼层
通常我都直接修改编辑器的,金钱腐败倒无所谓,工业浪费难以接受
 楼主| 发表于 2009-10-25 00:24:04 | 显示全部楼层

回复 #2 paultiago 的帖子

修改编辑器一般针对的是rank腐败吧...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|塞爱维(CIV)文明联盟    

GMT+8, 2024-4-18 10:02

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表