【问题标题】:How to structure Swift code with several related CGPoint arrays如何用几个相关的 CGPoint 数组构造 Swift 代码
【发布时间】:2017-01-31 16:05:24
【问题描述】:

如果这听起来很琐碎,请原谅我。我正在尝试找到一种方法来组织我的代码,无论是创建一个新类还是某种数据结构。我有几个 CGPoints,

var arrayOfPoints = [P1, P2, P3, P4, P5,..,P30]

当一个被随机选择时,它可以根据复杂度值compVal移动到多个其他点。 例如,如果compVal = 1,则P1 可以移动到[P2, P5],如果compVal = 2,P1 可以移动到[P3, P4, P6],依此类推直到compVal = 15,这适用于所有其他P 到@987654330 @。考虑到我可能需要偶尔过滤掉一些头寸,我如何才能以一种有序且高效的方式构建此功能?

【问题讨论】:

  • 我不太明白你的问题。最好显示一些代码你刚才做什么。并且可能对你喜欢做的事情进行伪代码
  • 也许(我只是猜测)您喜欢图形表示?
  • 可能的点数总是compVal + 1吗?
  • 您是否需要手动指定每个 compVal 的可能点,或者它们可以是随机选择的点(p1 到 p30)?

标签: swift class struct swift3


【解决方案1】:

根据我对问题的解释,听起来像:

  • 您有一个对象列表
  • 每个对象都有一个初始的CGPoint,并且可以将Int (compVal) 映射到[CGPoint] 的新数组。

基于此,您可以有如下结构:

struct MyPoint {
    var location: CGPoint
    var mappings: [Int: [CGPoint]]

    mutable func move(compVal: Int) {
        if let possiblePoints = mappings[compVal] {
            // possiblePoints is your [CGPoint] array.
            // Set `location` to one of them depending on your logic.
        }
    }
}

然后您可以将var arrayOfPoints 创建为[MyPoint]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2019-05-12
    • 2012-03-26
    相关资源
    最近更新 更多