java - 如何从二维表上的设置房间列表(给定房间大小)生成房间和它们之间的连接?
问题描述
我正在尝试在我的小型 Java 项目中实现一个地牢生成器(文本 roguelike - 在地图上从开始移动到退出随机事件)但有一个问题 - 我刚开始使用 Java,我不知道很多关于“正确”编码的内容,因此在生成地图时遇到了问题;地图是一个 2D 数组(例如 50x50 瓷砖),您可以在其中在与多个走廊相连的房间之间移动角色。
我正在考虑如何制作它的几个选项:
- 列出一组房间,然后它们将出现在阵列上的特定位置(将 50x50 阵列划分为 5x5 瓷砖,然后从第一个 4x4 瓷砖中选择一个点,房间的左上角 - 最小的房间我想做2x2)
- 通过在生成一些可玩图块的同时遍历每一列来生成地图,下一列将在现有图块旁边添加另一个可玩图块+经过几次迭代后制作走廊,但这听起来更复杂
- 通过检查 2 个瓷砖(即房间)是否在同一水平面(垂直或水平)然后将瓷砖从“墙”交换为“可玩”的瓷砖来制作走廊(这是一个文字游戏,所以从“#”到“。”)
这听起来可行还是我应该寻找其他解决方案?还是它太复杂/几乎不可能,并且有一种更简单的方法?
# # # # # # #
# # . . . # #
# # . # . E #
# # . . . # #
# # . # . # #
# H . . . # #
# # # # # # #
“H”是英雄,“E”是出口,“#”是墙壁和“.” 可播放的瓷砖(您可以通过输入移动 - 上/下/左/右)
解决方案
我对 java 和 android 也很陌生,我不得不说这听起来相当复杂,但并非不可能。如果您还没有这样做,我强烈建议您参加在线课程。www.udemy.com 是我为 Android Nougat 买了一个,并且刚刚注册了另一个为 Q 设计的。
我想象这样做的方式是调用一个随机数来选择你要穿过哪面墙,另一个来选择墙上的出口在哪里,然后创建一个调用方法来生成一个最大参数的随机房间您设置了另一个随机数来选择连接走廊的新房间的位置。我可以设计成新房间不会生成,直到用户在......比如说,出口的 2 个点,而不是提前生成地图。
我想说的是,了解“正确”编码对于完成这一点至关重要。不知道你知道/不知道多少,我认为在这篇文章中写得太多了。
不过祝你好运。
推荐阅读
- asp.net-core - Dotnet 运行 - 未找到兼容的 SDK 版本
- regex - 如何为后跟日期的字符串制作正则表达式
- java - java.lang.RuntimeException:Glassfish、Java、Jpa、EclipseLink 资源无效
- c++ - WriteProcessMemory 和类似函数是否会使可能缓存的数据无效?
- c# - 通过单击创建多个 MySQL 插入(库存系统)
- android - Appcelerator Titanium 是否支持经典移动应用程序中的自适应图标?
- javascript - 反应式表单如何一次显示一条错误消息?
- python - Django Migrations - 依赖项引用不存在的父节点
- grouping - Power BI DAX:获取基于另一列的总和
- ssl - 无法显示一小部分用户接收页面 - Windows server 2016 上托管的网站