You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift文本游戏中自动生成并控制台输出房屋布局地图?

Swift文本游戏:动态生成房屋布局坐标的问题

我在Linux虚拟机的Visual Studio Code中用Swift开发一款以房屋为布局的文本类游戏,已经实现了带有东南西北四个方向出口的Room对象,通过字典关联出口指向的房间,代码如下:

enum Direction: String {
    /// 四个主方向
    case North, East, South, West
}

/// 游戏地图中的房间(地点)基础实现,包含名称和指向其他房间的出口,出口以`Direction`标记
class Room {
    /// 房间名称(无需唯一标识)
    var name: String
    
    /// 出口映射(初始为空)
    var exits = [Direction: Room]()
    
    /// 初始化方法
    init(name: String) {
        self.name = name
    }

    /**
     根据方向获取当前房间的相邻房间
     
     - 参数 direction: 方向枚举`Direction`
     - 返回值: 对应方向出口的房间(如果存在)
     */
    func nextRoom(direction: Direction) -> Room? {
        return exits[direction]
    }
}

/// 扩展`Room`以实现`CustomStringConvertible`协议
extension Room: CustomStringConvertible {
    /// 描述信息包含房间名称及所有可用出口方向
    var description: String {
        return "You are in \(self.name)\n\nExits:\n\(self.exits.keys.map { "- \($0.rawValue)" }.joined(separator: "\n"))"
    }
}

我已经设计好房屋的房间布局,并且完成了单个房间的文本表示。由于后续计划添加更多房屋作为关卡,希望避免硬编码地图。

目前遇到的核心问题是如何正确输出房间的布局位置,我尝试过两种方法但都失败了:

  • 按行从左到右遍历房间并分配坐标,输出时房间位置错误(例如厨房与浴室错误对齐);
  • 在房屋边缘添加“空房间”来调整布局,效果不佳。

网上相关资料多基于XCode且以硬编码地图为主,因此求助可行的解决方案或改进建议。

内容的提问来源于stack exchange,提问作者StryfingBl4ck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:22:11