如何用几个相关的CGPoint数组构造Swift代码

如何用几个相关的CGPoint数组构造Swift代码,swift,class,struct,swift3,Swift,Class,Struct,Swift3,如果这听起来很琐碎,请原谅。我试图找到一种组织代码的方法,无论是创建一个新类还是某种数据结构。我有几点 var arrayOfPoints = [P1, P2, P3, P4, P5,..,P30] 随机选择一个点时,它可以根据复杂度值compVal移动到多个其他点。 例如,如果compVal=1,P1可以移动到[P2,P5],如果compVal=2,P1可以移动到[P3,P4,P6]等等,直到compVal=15,这适用于所有其他P到P30。考虑到我可能需要偶尔过滤一些位置,我如何以有序和高

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

var arrayOfPoints = [P1, P2, P3, P4, P5,..,P30]
随机选择一个点时,它可以根据复杂度值
compVal
移动到多个其他点。
例如,如果
compVal
=1,
P1
可以移动到
[P2,P5]
,如果
compVal=2
,P1可以移动到
[P3,P4,P6]
等等,直到
compVal=15
,这适用于所有其他P到
P30
。考虑到我可能需要偶尔过滤一些位置,我如何以有序和高效的方式构建此功能

从我对这个问题的解释来看,这听起来像:

  • 您有一个对象列表
  • 每个对象都有一个初始的
    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]

我不太理解您的问题。最好显示一些代码您刚才所做的工作。也许你喜欢什么样的伪代码(我只是猜测)你喜欢有一个图形表示?可能的点的数量总是compVal+1吗?你需要为每个compVal手动指定可能的点,还是它们可以是点的随机选择(p1到p30)?