Guest User

Untitled

a guest
Nov 25th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. import UIKit
  2.  
  3. var listOfWords = ["eggnog","santa","reindeer","presents", "christmass tree"]
  4.  
  5. let incorrectMovesAllowed = 7
  6.  
  7.  
  8.  
  9.  
  10. class ViewController: UIViewController {
  11.  
  12. struct Game {
  13. var word: String
  14. var incorrectMovesRemaining: Int
  15. var guessedLetters: [Character]
  16. mutating func playerGuessed(letter: Character) {
  17. guessedLetters.append(letter)
  18. if !word.characters.contains(letter) {
  19. incorrectMovesRemaining -= 1
  20. }
  21. }
  22. var formattedWord: String {
  23. var guessedWord = ""
  24. for letter in word.characters {
  25. if guessedLetters.contains(letter) {
  26. guessedWord += "\(letter)"
  27. } else {
  28. guessedWord += "_"
  29. }
  30. }
  31. return guessedWord
  32. }
  33. }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. @IBOutlet var lettersButtons: [UIButton]!
  40.  
  41. @IBOutlet weak var christmassTreeImageView: UIImageView!
  42.  
  43. @IBOutlet weak var correctWordLabel: UILabel!
  44. @IBOutlet weak var scoreLabel: UILabel!
  45.  
  46.  
  47.  
  48. override func viewDidLoad() {
  49. super.viewDidLoad()
  50. newRound()
  51. }
  52.  
  53. var currentGame : Game!
  54.  
  55. func newRound(){
  56. let newWord = listOfWords.removeFirst()
  57. currentGame = Game(word: newWord, incorrectMovesRemaining: incorrectMovesAllowed, guessedLetters: [])
  58. updateUI()
  59.  
  60. }
  61.  
  62.  
  63.  
  64.  
  65. func updateUI() {
  66. var letters = [String]()
  67. for letter in currentGame.formattedWord.characters {
  68. letters.append(String(letter))
  69. }
  70. let wordWithSpacing = letters.joined(separator: " ")
  71. correctWordLabel.text = wordWithSpacing
  72. scoreLabel.text = "Wins: \(totalWins), Losses: \(totalLosses)"
  73. christmassTreeImageView.image = UIImage(named: "Tree \(currentGame.incorrectMovesRemaining)")
  74. }
  75.  
  76.  
  77. override func didReceiveMemoryWarning() {
  78. super.didReceiveMemoryWarning()
  79.  
  80. }
  81.  
  82.  
  83.  
  84. @IBAction func buttonPressed(_ sender: UIButton) {
  85. sender.isEnabled = false
  86. let letterString = sender.title(for: .normal)!
  87. let letter = Character(letterString.lowercased())
  88. currentGame.playerGuessed(letter: letter)
  89. updateGameState()
  90. }
  91.  
  92. func updateGameState() {
  93. if currentGame.incorrectMovesRemaining == 0 {
  94. totalLosses += 1
  95. } else if currentGame.word == currentGame.formattedWord {
  96. totalWins += 1
  97. } else {
  98. updateUI()
  99. }
  100.  
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. }
Add Comment
Please, Sign In to add comment