【发布时间】:2022-06-12 00:46:56
【问题描述】:
我正在努力解决一个悬而未决的问题,即在构建像 Conways GOL 这样的元胞自动机时,如何实施团队?我想要两个或三个自动机,而不是仅仅一个自动机,竞争可用的单元格。
真正的问题是,当蓝色细胞遇到红色细胞时,如何让自动机决定哪支队伍赢得“战斗”,我们如何确定哪些彩色细胞最终会战胜另一个。 使用硬币翻转来随机确定获胜者将导致两种颜色不断切换单元格的平衡,但极不可能完全取代另一种颜色,因为它们每回合都有 50/50 的机会。
所以这不是一个解决方案。如何从两个基本相同的参赛者中获得“获胜者”? 我正在考虑给每个单元格的“功率(int)”为 1,并将所有这些功率变量相加(基本上计算所有相同颜色的单元格并将其与其他团队进行比较,无论哪个团队/颜色在游戏中拥有更多单元格那一点将继续主导并最终赢得比赛,但这也不是解决方案。
有人可以在这里指出正确的方向吗?
基本上,当双方完全相等时,你如何确定获胜者,而且它也不能是 50/50 随机的,它必须能够像康威生命游戏中那样进化。
编辑:这个自动机不会考虑人口过剩(细胞死于太多相邻的邻居)。它是一个元胞自动机,但它的规则与 CGOL 不同。目前仅从 2 个或更多邻居扩展,基本上单元格将尝试用它们的颜色填充整个网格。
感谢您的洞察力!
-埃里克
【问题讨论】:
-
您可以使每个单元格根据其坐标设置为红色或蓝色。例如。所有偶数坐标都将固定为红色,或使用 PRNG(具有固定的每场比赛种子)来确定任何给定的单元格将固定为红色还是蓝色。或者稍微扩大一点,让相邻单元格的区域偏爱特定颜色?例如。右下角对红色更有利。同样,您可以想出一种创建这些区域的伪随机方式。
-
或者你可以选择一个指标,例如,当两种颜色竞争一个单元格时,后面有最大连接“军队”的颜色获胜,或者相同颜色的连接单元格距离最远距离,或某个半径内同色单元格的最大数量
-
@canton7 您的第二个解决方案,也是我正在考虑的,但我不希望它在这个迭代中起作用,我觉得解决方案在那个方向的某个地方。我看到这个解决方案的一个问题是,无论哪个团队/颜色在游戏开始时以最多的单元格开始,都会有 99% 的时间获胜。
-
我认为这是一个 Try It And See 的案例。然后调整、迭代和试验。你不会在 CGOL 中获得大的连接区域:事物有死亡的习惯。所以我不太确定这里的“胜利”是什么意思
-
对不起@canton7 ,我意识到我的问题不是100% 清楚,所以我添加了一个编辑!基本上细胞不会像 CGOL 中那样死亡,我可能会添加一个细胞死亡的规则,但现在它们只会在另一个有色细胞取代它们时“死亡”。
标签: conways-game-of-life cellular-automata