我真的在为这个项目苦苦挣扎。所以我有一个“网格”又名2D char矢量。 79个字符宽,20个字符高。我创建了一些函数,基本上从网格的一个边缘绘制路径到另一个边缘。这些“路径”有些随机..我有一个随机生成器从0-7中选择一个int并使用我为其创建函数的路径的组合。所以......有几条路径/线穿过网格。
下一部分是在网格上的这些路径上放置矩形/正方形。经过几个小时的挫折之后,我得到了将这些矩形放在路径上的程序。
下一部分让我输了,我不知道如何开始。我现在需要确定路径是否以某种方式将所有矩形连接在一起,但只有1或2个路径可以连接到矩形。因此,如果其中一个矩形没有触及路径,我需要调用该函数来重新生成带有路径和矩形的新网格。
除了能够检查路径是否在1或2个位置接触矩形之外......我需要删除多余的路径字符。因此,如果路径没有连接到另一个矩形或需要的路径,我需要删除该字符。
'#'是路径和'。'是矩形 下面是我的程序现在显示的示例:
# #
# #
........ # ##############
........ # # # ..........
........ # # ##..........############
........########### # # .......... #
###........########################### .......... #
........ # # .......... #
........ ################################# #
# # # #
# # # #
........ # # # #
........ # # ########################
........ # ####### # ........
........ # # # ........
############........## # # ........
........ ################## ........##################
........ ........
........ ........
注意额外的'#'标记以及它们中的一些是无用的?从技术上讲,我不必删除路径fork并重新连接路径的位置。我可以在技术上让他们触摸超过1个位置,因为我将为矩形添加边框..只有1或2个点直接连接'#'到'。'。 (现在不担心)他们只是不能超过1'#'厚和以前的要求。在我以某种方式弄清楚如何删除我不需要的东西之后,这应该是什么样子:
........ ##############
........ # # ..........
........ # ##..........
........########### # ..........
........ ################# ..........
........ # # ..........
........ #################################
# # #
# # #
........ # # #
........ # # ####
........ # ####### # ........
........ # # # ........
........## # # ........
........ ################## ........
........ ........
........ ........
我得到的最接近的是检测路径从某个位置走向哪个方向..但我不知道如何将其用于我删除'#'或检查岛状矩形的方法。
请帮帮我:(我不知道怎么做!如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
这不完全是你所要求的,但我认为它可以帮助你,What are some ideal algorithms for Rogue-like 2D dungeon generation?,Dungeon Generation这一个Dungeon-Building Algorithm甚至有C ++代码示例。还有rouge-like
游戏的代码也必须做同样的事情。