【问题标题】:How to generate rooms and connections between them from the set room list (given room sizes) on the 2D table?如何从二维表上的设置房间列表(给定房间大小)生成房间和它们之间的连接?
【发布时间】:2019-11-08 19:08:25
【问题描述】:

我正在尝试在我的小型 Java 项目中实现一个地牢生成器(文本 roguelike - 在地图上从开始移动到退出随机事件)但有一个问题 - 我只是从 Java 开始,我没有对“正确”编码知之甚少,因此在生成地图时遇到问题;地图是一个 2D 数组(例如 50x50 瓷砖),您可以在其中移动您的角色在与多个走廊相连的房间之间。

我正在考虑如何制作它的几个选项:

  • 列出一组房间,然后它们会出现在阵列上的特定位置(将 50x50 阵列划分为 5x5 块,然后从第一个 4x4 块中选择一个点,房间的左上角将是我想要的最小房间是 2x2)
  • 通过遍历每一列来生成地图,同时生成一些可玩图块,下一列将在现有图块旁边添加另一个可玩图块 + 经过几次迭代后制作走廊,但这听起来更复杂
  • 通过检查 2 个瓷砖(即房间)是否在同一水平面上(垂直或水平)然后将瓷砖从“墙壁”交换为“可玩”的瓷砖(这是一个文字游戏,所以从“#”到“ .")

这听起来可行还是我应该寻找其他解决方案?还是太复杂/几乎不可能,有更简单的方法吗?

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

“H”是英雄,“E”是出口,“#”是墙壁和“.”可播放的图块(您可以通过输入移动 - 上/下/左/右)

【问题讨论】:

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

标签: java arrays random generator


【解决方案1】:

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

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

我想说的是,了解“正确”编码对于完成此任务至关重要。不知道你知道多少/不知道多少,我认为在这篇文章中写得太多了。

祝你好运。

【讨论】:

    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多