4
程序生成特定区域的建筑物
我和一个团队正在开发一个工厂建造者游戏,该游戏在游戏开始时为玩家提供一个随机的工厂。为了确保有一种“公平”的感觉,理想情况下,随机生成的工厂的面积应在(占位符值)30的几个单位内。 编写满足这些规范的基本随机矩形生成器相对简单,但我们的目标是使工厂变得更加复杂,可能由2个,3个甚至4个相交的矩形组成,从而产生更复杂的形状(例如L, U和O形建筑物)。 我尝试生成一个随机矩形,然后使用基本代数填充第二个矩形,但是到目前为止,我并没有实现超过2个矩形的运气,即使如此,我对仅2个矩形设计的结果也不满意。 一些更相关的信息:2D自上而下一些机制是factorio样式,因此房间应该具有合理的长度和宽度,以便为机械留出空间(目前在Java和Lua中使用)(可以根据需要使用内置的库) 提前致谢! 编辑:当我说“好”或“坏”的输出时,不良的输出将是具有播放器无法使用的空间的任何输出。工厂形状限制了玩家可以放置工厂机器(例如传送带)的位置。理想情况下,工厂的区域不应只有1-2个块的宽度,形状不应该是一个或两个大的矩形,而将1-2个块的线“垂悬”到一侧。一个好的输出是所有地板空间都是“可行的”,因此所有区域至少应为3-4块宽。好的输出并不一定总是很复杂(可以使用1或2个矩形),但如果由超过1-2个矩形组成,则输出的机会就很大。