或者,您可以通过黄色瓷砖“侵蚀”蓝色/背景来解决此问题。为此,在每一步中,让黄色图块将固定数字添加到与它沿基本方向相邻的所有背景图块的“侵蚀和” E(也许可能是与它对角线相邻的背景图块的一小部分) )。
然后,当需要放置新图块时,您可以为每个背景图块选择一个从 0 到E的随机数;最伟大的一个被“侵蚀”掉了。或者,您可以进行简单的加权随机选择,其中E是它们的权重。
对于 2x2 或 3x3 瓷砖,您只能从适合其中“适合”2x2 或 3x3 正方形的瓷砖中挑选(即,边缘有侵蚀的 2x2 或 3x3 瓷砖,这样就不会导致与已经-的重叠)放置的瓷砖)。但实际上,你永远不会得到像一对一侵蚀/瓷砖放置那样自然的东西。
您可以通过让侵蚀总和在每次迭代中持续存在来节省重新计算侵蚀总和的时间,仅当您添加新图块时,增加其周围的侵蚀总和(简单的+=)。在这一点上,它与另一个建议的答案本质上是相同的,尽管具有不同的观点/哲学。
侵蚀和E的样本网格,直接基数邻居为 +4,对角邻居为 +1:
侵蚀总和 http://img199.imageshack.us/img199/4766/erosion.png
E较高的最有可能被“侵蚀”掉;例如,在这个例子中,西面和南面的两个小海湾最有可能被黄色侵蚀掉,其次是北面和东面的较小海湾。最不可能的是那些几乎一角触及黄色的球。您可以通过为每个图块分配一个从 0 到E的随机数并侵蚀具有最高随机数的随机数,或者进行简单的加权随机选择,或者通过您选择的任何决策方法来决定哪一个。