2017-07-03 27 views
1

我想檢查按下按鈕(他們都有標籤)對現有陣列的順序。例如,我有一個數組1-9和9按鈕,我想知道用戶是否按正確的順序按下它們。如果沒有,那麼我會返回一個錯誤。這似乎很簡單,但我仍然在學習,並已耗盡我的資源。提前致謝!我已經設法取得進展,並使按鈕打印到控制檯上的標籤,但似乎發生小錯誤似乎讓他們都在一個陣列中,他們都是分開打印。如何檢查對現有陣列的按下按鈕的順序Swift 3.0

@IBAction func onePressed(_ sender: Any) { 
     print("cell 1 was pressed while it showed \(shuffledArray[0])") 
    } 

這現在已經解決了!感謝所有的幫助!這是工作代碼!

@IBAction func onePressed(_ sender: UIButton) { 
    print("cell 1 was pressed while it showed \(shuffledArray[0])") 
} 

然後

if sender.tag == shuffledArray[0] { 
    // the button's tag is the first one in the array 
} 

-

@IBAction func pressed(_ sender: UIButton) { 
    //print("cell was pressed while it showed \(shuffledArray[0])") 

    switch(sender.tag){ 

    case 1: 
     order.add(sender.tag)//adding to nsmutable array use add or at a specific index use insert 
     print(order) 
     self.oneLabel.backgroundColor = UIColor.white 

    case 2: 
     order.add(sender.tag) 
     print(order) 
     self.twoLabel.backgroundColor = UIColor.white 

    case 3: 
     order.add(sender.tag) 
     print(order) 
     self.threeLabel.backgroundColor = UIColor.white 

    case 4: 
     order.add(sender.tag) 
     print(order) 
     self.fourLabel.backgroundColor = UIColor.white 

    case 5: 
     order.add(sender.tag) 
     print(order) 
     self.fiveLabel.backgroundColor = UIColor.white 

    case 6: 
     order.add(sender.tag) 
     print(order) 
     self.sixLabel.backgroundColor = UIColor.white 

    case 7: 
     order.add(sender.tag) 
     print(order) 
     self.sevenLabel.backgroundColor = UIColor.white 

    case 8: 
     order.add(sender.tag) 
     print(order) 
     self.eightLabel.backgroundColor = UIColor.white 

    case 9: 
     order.add(sender.tag) 
     print(order) 
     self.nineLabel.backgroundColor = UIColor.white 

    default : 
     break 
    } 

    if order.count == 9 { 
     print(order.count) 
     let indexOfShuffled = [1,2,3,4,5,6,7,8,9] 
     let combined = zip(shuffledArray, indexOfShuffled).sorted {$0.0 < $1.0} 
     print(combined) 

     // use map to extract the individual arrays 
     let sortedIndexOfShuffled = combined.map {$0.1} 
     let sortedShuffledArray = combined.map {$0.0} 

     print(sortedIndexOfShuffled) // "[1.2, 1.5, 2.4, 10.9, 20.0]" 
     print(sortedShuffledArray) // "[1, 3, 0, 0, 2]" 

     if order == sortedIndexOfShuffled as! NSMutableArray{ 
      self.oneLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.twoLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.threeLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.fourLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.fiveLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.sixLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.sevenLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.eightLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.nineLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
     }else{ 
      self.oneLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.twoLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.threeLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.fourLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.fiveLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.sixLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.sevenLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.eightLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.nineLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
     } 
    } 
} 

回答

0

開始用這個代替(如果不是假設你在這裏使用一個按鈕,用你的實際類型的任何變化的UIButton)你可能想保留一個索引(而不是使用0以上)

添加屬性

var buttonPressedIndex = 0 

然後

if sender.tag == shuffledArray[buttonPressedIndex] { 
    // the button's tag is the next one in the array 
    buttonPressedIndex += 1 // go to next button in array 
} else { 
    // show an error 
}