如果这听起来很微不足道,请原谅我。我正在尝试找到一种组织代码的方法,无论是创建新类还是某种数据结构。我有几个 CGPoints,
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]
。
关于swift - 如何用几个相关的 CGPoint 数组构造 Swift 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41962087/