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

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

当随机选择一个时,它可以根据复杂度值移动到许多其他点。
例如,如果compVal=1,compVal可以移动到P1,如果[P2, P5],p1可以移动到compVal = 2等等,直到[P3, P4, P6]为止,这适用于所有其他p's tocompVal = 15。我如何才能以有序和高效的方式构造此功能,同时记住我可能需要偶尔筛选出一些位置?

最佳答案

从我对这个问题的解释来看,这听起来像:
您有一个对象列表
每个对象都有一个初始的CGPoint,并且有一种将IntcompVal)映射到新的[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]

08-26 03:21