gpt4 book ai didi

arrays - 数组上的嵌套 for 循环

转载 作者:行者123 更新时间:2023-11-28 15:56:39 24 4
gpt4 key购买 nike

我正在使用 SpriteKitSwift 3 创建一个简单的游戏。我有一组环/圆:

mRings = [mRingOne, mRingTwo, mRingThree, mRingFour, mRingFive]

数组中的每个对象都有不同的颜色,在游戏中的某些时候我想改变每个环的颜色,但我有两个条件可以实现:1. 一枚戒指不应该有它之前迭代的颜色。2. 每个戒指的颜色应该与其他戒指不同。

对于第一个条件,我这样做了:

func changeRingsColor(){
var previousColor: UIColor?
for ring in mRings {
previousColor = ring.fillColor
repeat{
ring.fillColor = hexStringToUIColor(hex: mColors[Int(arc4random_uniform(UInt32(5)))])
}while(ring.fillColor.isEqual(previousColor))
}
}

它正在运行,但是,我想不出一种方法来回答第二个条件。在 Java 中,我可能会这样做:

    for (int i=0; i<mRings.length; i++){
for( int j=1; j<mRings.length; j++){
if (ring[i].fillColor == ring[j].fillColor){
generate another color for 'j' ring.
}
}
}

但我没有尝试过。希望你们能帮助我,在此先感谢!

顺便说一句,mColors 是 5 种不同颜色的数组,我从那里挑选颜色。

最佳答案

我将忽略一些实现细节并关注问题的核心,即:

  • 遍历一个数组
  • 在每个循环中,从当前索引开始一个新循环,直到数组末尾。

如果我对上述内容有误解,请告诉我。但我会这样做:

for (index, ring) in mRings.enumerated() {
let remainingRings = mRings[index+1..<mRings.count]
for otherRing in remainingRings {
print("Now comparing \(ring) to \(otherRing)")
}
}

首先,enumerated() 在第一个 for 循环的每次迭代中为您提供当前环和索引。然后,我们将数组从当前索引切片到末尾 (remainingRings),并循环遍历这些数组。

关于arrays - 数组上的嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com