如果这听起来很琐碎,请原谅我。我试图找到一种方法来组织我的代码,无论是创建一个新的类还是某种类型的数据结构。我有几个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
,并且有一种将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]
。