gpt4 book ai didi

arrays - Swift Playground 中的二维数组

转载 作者:可可西里 更新时间:2023-11-01 01:36:49 24 4
gpt4 key购买 nike

我正在尝试为我的游戏编写一个关卡生成器,所以我正在 Swift playground 中对其进行测试。我的关卡存储在 2D Swift 数组中。一切都很好,只是我无法以有用的方式查看数组数据。因为它是瓦片游戏中的关卡数据,所以我希望看到行和列排列整齐。但是,该数组目前只是一行调整大小以适应控制台的大小。我怎样才能看到排列整齐的行和列?这是我当前的输出:

[[" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", " ", "&", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", "&", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "]]

我可以通过调整控制台的大小来获得一些不错的结果,但必须有更好的方法来做到这一点。

最佳答案

如果您想在控制台中用其内容对齐 表示您的二维数组,我的建议是使保存数组的类符合协议(protocol) CustomStringConvertible

为此您必须创建一个description 计算属性,这是我们进行格式化的地方:我们将内部数组转换为字符串并使用行分隔符连接它们。

遵守协议(protocol)使得对象在打印时输出计算属性的结果。

例子:

class BigArrayRepresenter: CustomStringConvertible {

var bigArray: [[String]] = []

init(bigArray: [[String]]) {
self.bigArray = bigArray
}

var description: String {
return bigArray.map { String($0) }.joinWithSeparator("\n")
}

}

使用你的数组:

let source = [[" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", " ", "&", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", "&", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", "&", "&", "&", "&", "&", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", " ", "&", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "&", "&", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "]]
let representer = BigArrayRepresenter(bigArray: source)
print(representer)

我们得到这个结果:

enter image description here

关于arrays - Swift Playground 中的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36287694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com