2017-07-03 1 views
1

Je voudrais vérifier l'ordre des boutons enfoncés (ils ont tous des balises) par rapport à un tableau existant. Par exemple, j'ai un tableau avec 1-9 et 9 boutons, je voudrais savoir si l'utilisateur les appuie dans le bon ordre. Si non, je vais retourner une erreur. Cela semble assez simple mais j'apprends encore et j'ai épuisé mes ressources. Merci d'avance! J'ai réussi à faire progresser les boutons et à les faire imprimer sur la console, mais un bogue mineur semble se produire et je n'arrive pas à les voir tous dans un tableau, ils sont tous imprimés séparément.Comment vérifier l'ordre des boutons appuyés sur un tableau existant Swift 3.0

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

Ceci a maintenant été résolu! Merci pour votre aide! Voici le code de travail!

@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) 
     } 
    } 
} 

Répondre

0

Commencez par utiliser ce lieu (modifier les à UIButton - en supposant que vous utilisez un bouton ici, sinon, utilisez votre type réel)

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

Puis

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

Vous souhaiterez peut-être conserver un index (au lieu d'utiliser 0 ci-dessus)

Ajouter une propriété

var buttonPressedIndex = 0 

Puis

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 
}