zyl910

优化技巧、硬件体系、图像处理、图形学、游戏编程、国际化与文本信息处理。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最大化利用工厂等影响6格建筑的六边形网格规划(2016-10-27增加五、六节,19城+133锤方案,37城+259锤方案)

作者:zyl910

一、原理

文明6里有一些特殊的建筑及奇观,它们不仅对所属城市有效,还能覆盖一定范围内的城市。

工业区(Industrial Zone)建筑——

  • 工厂(Factory):所在工业区6格半径范围内的所有城市 产能+3,大工程师点数+1
  • 发电厂(Power Plant):所在工业区6格半径范围内的所有城市 产能+4,大工程师点数+1

娱乐区(Entertainment Complex)建筑——

  • 动物园(Zoo):所在娱乐中心6格半径范围内的所有城市满意度(娱乐)+1
  • 体育场(Stadium):所在娱乐中心6格半径范围内的所有城市满意度(娱乐)+2

奇观——

  • 罗马斗兽场(Colosseum):所在格周围6格半径范围内的所有城市文化+2、且满意度(娱乐)+3

另外有个城邦还可能增加这个影响范围——

  • 多伦多(Toronto):宗主国的工业区与娱乐中心的区域效应范围增加3格

故可通过仔细规划城市布局,构建一个共享区域,使范围内的城市享受同时被多个工业区、娱乐区加成的效果。

数学苦手可以直接跳过后面的数学计算小节,直接看 “3.2 具体方案”(6格)、“4.2 具体方案”(9格)。

二、公式推导

2.1 背景知识

在六角形地图里,圆的概念如下:

这是一个半径2的圆,在以下的说明里记为R=2,可以看出圆内任何格到中心格的距离都≤2。

而城市的建设范围是一个R=3的圆,如下图所示:

R=3的圆最外层称为R=3的环,环所包含的格数为6R,所有环上的格到中心格的距离都为3。

2.2 公式推导

设立代数——

  • L:工业区影响范围常量(一般为6,多伦多城邦加成后为9)
  • A:所有城市中心包含在内的环半径
  • B:把所有工业区包含在内的环半径。A>=B

列不等式——

  • 最大距离:A+B<=L
  • 最小距离:A-B<=3

两式相加——

(A+B) + (A-B) <= L+3

2*A <= L+3

A <= (L+3)/2

当已求出A时,可以求出B的最大环半径:B=L-A

但要注意城市只能管理3格内,故最外圈城市可管理的距离 B'>=A-3 。

三、影响范围为6时

3.1 计算

带入L=6后得——

A <= (6+3)/2

A <= 4.5

A可取4。此时B = L-A = 6-4 = 2

即(几何中心的)2环及以内是共享区。

最外圈城市可管理的距离——

B'>=A-3

B'>=4-3

B'>=1

即最外圈城市可管理的共享区为(几何中心的)1环至2环的地块。

3.2 具体方案

6格时的黄金6城(7城)方案已经被很多人讨论透了,我这里便不细说了。具体的方案见这个帖子——

http://tieba.baidu.com/p/4836371682

共享区域规划技巧初探

以黄金6城方案为例——

图中绿色为城市中心,可以在R=4的环上任意转动排列。

红色为城市的建设范围。

蓝色为工业区和文化区应该建设的位置。只要建设在蓝色区域,6城都可以享受。

所有的城市均受到6个工业区的加成。所加产能为 (3+4)*6 = 7*6=42。

所有的城市均受到6个娱乐区的加成。所加满意度为 (1+2)*6 = 3*6=18。

注意这些加成不受其他因素影响。只要按本规划建好城市,即使它是1人口小城,也能享受加成。

四、影响范围为9时

4.1 计算

带入L=9后得——

A <= (9+3)/2

A <= 6

A可取6。此时B = L-A = 9-6 =3

即(几何中心的)3环及以内是共享区。

最外圈城市可管理的距离——

B'>=A-3

B'>=6-3

B'>=3

即最外圈城市可管理的共享区仅为(几何中心的)3环地块。

因A为6,即最外环城市中心的半径为6。

6环共有36格。以平均每隔3格1个城市来看,那么可以放 36/(3+1)=9个城市。

(几何中心的)2环有12格,正好能放 12/(3+1)=3个城市。

即城市总数为 9+3 = 12。

4.2 具体方案

因内圈城市在(几何中心的)2环,那么 每个城市的1环会 在 几何中心的3环 占3格,这几格不适宜放工业区。

那么3环还剩下 18-(3*3) = 9格格子。正好用来放外层9个城市的工业区。

内层的工业区看来得放在1环以内了。排除与城市中心相邻的格子,正好剩下3格。

这样就能使所有的城市均受到12个工业区的加成。所加产能为 (3+4)*12 = 7*12=84。

而对于娱乐区——

  • 先说外圈。虽然理论上3环还剩下9格(18 - 9个工业区),正好可放下9个外圈城市的娱乐区。可只有6个城市的管理范围够,可将娱乐区能放在共享半径内。而另外3个城市 因其管理范围的3环 与 几何中心的3环只有 1格相交,而那一格已用作工业区了,故会导致有3个娱乐区无法放入共享半径。这4个娱乐区只能放在几何中心的第4环了,可通过巧妙的对称放置,使这3个娱乐区均能覆盖10个城市中心(漏掉了2个外圈城市中心)。即外圈有6个城市,会均少1次娱乐区覆盖。
  • 内圈3个城市的的娱乐区可在3环内随便放,覆盖所有城市。

即——

  • 内层3个城市与外层3个城市:被 12 个娱乐区覆盖。所加满意度为 (1+2)*12=3*12=36
  • 外层6个城市:被11个娱乐区覆盖。所加满意度为 (1+2)*11=3*11=33

颜色说明——

  • 绿色:城市中心(带“-”的是少1个娱乐区覆盖的)
  • 深蓝:工业区
  • 亮蓝:内层3个城市的娱乐区或自由格子
  • 紫色:外层9个城市的娱乐区
  • 淡红色:非共享的城市建设范围

最后还可以考虑在中心格子修一个“罗马斗兽场”奇观。它也是影响6格的,12个城均能受到加成。

五、5格距平铺时的工业区位置选择

为了尽可能高效的占地,有时我们会采用5格距平铺的形式来建城。只要陆地面积足够,能铺多少个城,便铺多少。例如——

本节便是专门用来讨论这种情况下的工业区位置选择的。

5.1 标准方案

考虑到六边形对称,工业区的摆放位置实际上只有5种选择(其他位置是这5个选择的旋转或镜像)。即上图的A、B、C、D、E。

计算了一下这5个位置范围覆盖情况——

  • A位置(1环直格):范围为6时能覆盖4城,为9时覆盖7城。注意工业区有相邻地格吸引力降低1的惩罚。
  • B位置(2环直格):范围为6时能覆盖4城,为9时覆盖7城
  • C位置(2环偏格):范围为6时能覆盖3城,为9时覆盖7城
  • D位置(3环直格):范围为6时能覆盖4城,为9时覆盖10城
  • E位置(4环偏格):范围为6时能覆盖3城,为9时覆盖9城

注——

  • 直格:从城市中心出发,直走便能到达的格子。
  • 偏格:从城市中心出发,需要拐弯才能到达的格子。

可见,最佳位置是D,不仅在平常情况下能覆盖4城,且在有城邦将影响范围为9时能覆盖10城。

由于该城邦是可遇而不可求。故工业区位置的优先顺序为 D、B、A、E、C。

娱乐区也是同理。摆好工业区后,按照该优先顺序(D、B、A、E、C)放娱乐区。

5.2 加强中心的方案

在很多时候,我们希望加强中心城市的产能。

故可以将外围城市分为6类,将工业区朝向中心。例如(方案不只一种)——

此时中心城市的工业区覆盖情况——

  • 范围为6时:被7个城覆盖(自己 + 圈1的6个城)。所加产能为 (3+4)*7 = 7*7=49。
  • 范围为9时:被19个城覆盖(自己 + 圈1的6个城 + 圈2的12个城)。所加产能为 (3+4)*19 = 7*19=133。

该方案的优点是能使中心城市获得很大的加成。

缺点是工业区的加成不是均匀的,除了中心城市外,其他城市只被少量工业区覆盖。

5.3 推广到其他格距或非一致距离

很多人铺城时不是5格距离,而且很多时候由于地形限制,没法全部保持5格距离。此时的工业区位置该怎么摆呢?

从上述内容来看,工业区摆在直格(从城市中心出发,直走便能到达的格子)是最容易覆盖更多城市的。

其次,选最远(3环)的位置,会更容易覆盖更多城市的。

故也可以按照 D、B、A、E、C 的优先顺序放置工业区、娱乐区。

六、中心城市的理论最大加成

参考前几节的经验,现在可以估算中心城市的理论最大加成了。

为了获得最大加成,故城市间距应该选3格。

以中心城市为中心,在外面的环上建城市——

  • 第1圈城市位于中心城市的4环。共有 (6*4)/(1+3) = 24/4 = 6个城市。
  • 第2圈城市位于中心城市的8环。共有 (6*8)/(1+3) = 48/4 = 12个城市。
  • 第3圈城市位于中心城市的12环。共有 (6*12)/(1+3) = 72/4 = 18个城市。
  • ……
  • 第n圈城市位于中心城市的 4*n 环。共有 (6*(4*n))/(1+3) = 6*n 个城市。

6.1 影响范围为6时

第2圈城市位于中心城市的8环,考虑到城市可管理3格范围内的格子,那么它们的工业区可放在5环上。

此时中心城市能受到 自身、第1圈城市、第2圈城市 的工业区加成。所加产能为 (3+4)*(1+6+12) = 7*19=133。

6.2 影响范围为9时

第3圈城市位于中心城市的12环,考虑到城市可管理3格范围内的格子,那么它们的工业区可放在9环上。

此时中心城市能受到 自身、第1圈城市、第2圈城市、第3圈城市 的工业区加成。所加产能为 (3+4)*(1+6+12+18) = 7*37=259。

附录A、参考文献

参考文献——

posted on 2016-10-26 18:18  zyl910  阅读(9654)  评论(0编辑  收藏  举报