Java 如何从二维表格上的“设置房间”列表(给定房间大小)生成房间及其之间的连接?

Java 如何从二维表格上的“设置房间”列表(给定房间大小)生成房间及其之间的连接?,java,arrays,random,generator,Java,Arrays,Random,Generator,我正试图在我的小Java项目中实现一个地下城生成器(类似于roguelike的文本-在地图上以随机事件从开始移动到结束),但有一个问题-我只是从Java开始,我不太了解“正确”编码,所以在生成地图时遇到了问题;地图是一个二维阵列(例如50x50瓷砖),在其中可以在与多条走廊相连的房间之间移动角色 我在考虑如何实现这一目标的几个选项: 列一个集合房间的列表,然后它们将出现在阵列上的特定位置(将50x50阵列划分为5x5个瓷砖,然后从第一个4x4瓷砖中选择一个点,即房间的左上角-我想要制作的最小房

我正试图在我的小Java项目中实现一个地下城生成器(类似于roguelike的文本-在地图上以随机事件从开始移动到结束),但有一个问题-我只是从Java开始,我不太了解“正确”编码,所以在生成地图时遇到了问题;地图是一个二维阵列(例如50x50瓷砖),在其中可以在与多条走廊相连的房间之间移动角色

我在考虑如何实现这一目标的几个选项:

  • 列一个集合房间的列表,然后它们将出现在阵列上的特定位置(将50x50阵列划分为5x5个瓷砖,然后从第一个4x4瓷砖中选择一个点,即房间的左上角-我想要制作的最小房间2x2)
  • 要生成地图,请在生成几块可播放的瓷砖的同时遍历每一列,下一列将在现有瓷砖的旁边添加另一块可播放的瓷砖+经过几次迭代后生成走廊,但这听起来更复杂
  • 通过检查两个瓷砖(即房间)是否位于同一水平面(垂直或水平),然后将瓷砖从“墙”切换到“可玩”的瓷砖(这是一个文本游戏,因此从“#”切换到“.”)
这听起来可行吗?还是我应该寻找其他解决方案?还是太复杂/几乎不可能,还有更简单的方法

# # # # # # #
# # . . . # #
# # . # . E #
# # . . . # #
# # . # . # #
# H . . . # #
# # # # # # #

“H”是英雄,“E”是出口,“#”是墙,“.”可玩的瓷砖(你可以通过输入移动-上/下/左/右)

我对java和android也相当陌生,我不得不说这听起来相当复杂,但并非不可能。如果你还没有这样做,我强烈建议你参加一个在线课程。www.udemy.com是我为安卓牛轧糖(androidnougat)买了一个,刚刚注册了另一个为Q设计的

我可以想象这样做的方式:调用一个随机数来选择要离开的墙,另一个随机数来选择出口在墙上的位置,然后创建一个方法来调用该方法,生成一个随机房间,使其达到您使用另一个随机数设置的最大参数,以选择您将走廊连接到的新房间的位置。我可以这样设计,新的房间不会产生,直到用户在。。。比如说,2个出口点,而不是提前生成地图

我想说的是,了解“正确”的编码对于完成这项工作至关重要。我不知道你知道/不知道多少,我想在这篇文章里投入太多了


祝你好运。

Java就可以了。在名为Board的类中使用一个数组,并编写一个方法将其像在图片中一样打印出来。下载像Intellij这样的IDE。他们有一个免费版本。最大的障碍是学习一门新语言,并独自工作。你可能会在网上或亲自找一群志同道合的人做类似的事情。