ios - 在数组中查找具有相同颜色的元素,如果它们彼此相邻则打印 true

标签 ios arrays swift sprite-kit compare

它以某种方式起作用,就像我做的那样。但我知道应该有更好和优化的方法来检查所有行和所有颜色。如果你知道,请分享。谢谢

  func checkMovesAvailable(){
    var count = 0
    var yellowArray = [0,0,0,0]
    var movesAvailable: Bool = false
    for i in 0..<3{
    square[i, 0]
    if(square.fillColor == SKColor.yellow){
    yellowArray.remove(at: i)
    yellowArray.insert(1, at: i)
    print(yellowArray)

    if yellowArray[0] == yellowArray[1] || yellowArray[1] == yellowArray[2] || 
yellowArray[2] == yellowArray[3] {
    count += 1
    }
    }
    }

    if(count>=2){
    movesAvailable = true
    }
    if(count<=1){
    movesAvailable = false
    }
    print("movesAvailable: \(movesAvailable)")
    }

preview

最佳答案

如果我正确理解你的问题,你有一个数组 SKShapeNode 并想检查是否有任何相邻节点具有 相同的填充颜色。这可以简单地通过以下方式完成:

func isMoveAvailable(squares: [SKShapeNode]) -> Bool {
    return zip(squares, squares.dropFirst()).contains(where: { $0.fillColor == $1.fillColor })
}

解释:

  • squares.dropFirst() 返回一个节点序列没有 第一个元素。
  • zip(squares, squares.dropFirst()) 返回一个包含对的序列 相邻节点:

    (node0, node1), (node1, node2), ... 
    
  • contains(...) 检查是否有一对填充颜色相同。

关于ios - 在数组中查找具有相同颜色的元素,如果它们彼此相邻则打印 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44482256/

相关文章:

python - numpy 屏蔽不规则数组

C++试图返回一个 double 组的字符串(有点)

ios - 为 TableView 单元格设置值时出现 fatal error

iphone - 显示 View 时更改 UITableView 中静态单元格的属性

android - React native 应用程序在 IOS 13 版本设备中崩溃

ios - 我有一个 TableView 和五个数据源

javascript - 如何在 JavaScript 中对美元数字范围进行排序

ios - 如何使用结果库处理 Void 成功案例(成功/失败)

ios - 具有低高度 UICollectionView 的 UIRefreshControl

ios - 通过 “perform segue”传递错误返回nil?