在网格中生成城镇布局


9

我想使用以下元素在正方形网格(等距渲染,但是没关系)中生成城镇布局:

  • 2x2房屋
  • 道路,宽1个单位
  • 1个宽的运河

示例布局:

样本布局

  • 我总是有一定数量的房屋,并有尽可能多的道路和运河将它们连接起来。
  • 房屋的前门必须有两条路(总是指向右边)
  • 介于它们之间的草地(空虚)会很好。

有现成的算法吗?如果没有,我应该考虑朝哪个方向实施?

Answers:


8

有许多方法要走,具体取决于您想要的方式。这是我认为适合您描述的一种方法的粗略概述:

首先生成运河。然后开始随机放置房屋,对于您所放置的每座房屋,将道路放置在房屋的前面,并从该部分绘制一条通往现有道路网络的道路(如果不可能的话),或者将道路放置在前面导致2x2的丑陋块路重新安置房子。检测一些道路点,这些道路点彼此接近,但与现有道路相距较远,并尝试为它们建立一些捷径。

这种东西最重要的是需要实验和经验。通常,通过随机地进行一些细节处理,确定其是否满足某些条件,然后撤消并重试(如果不满足),将会获得良好的结果。

对于这一确切的任务,您当然也需要掌握基本的寻路功能,除非您已经是专家,请继续阅读本主题。记住,寻路并不一定要是最短的路径,对于我的描述的最后一部分,您可能希望重用已存在的路径。

这根本不是一件容易的事,如果您遇到困难,请回来给我们展示您的代码和一些示例输出,并详细说明您希望它与众不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.