Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- var listOfWords = ["eggnog","santa","reindeer","presents", "christmass tree"]
- let incorrectMovesAllowed = 7
- class ViewController: UIViewController {
- struct Game {
- var word: String
- var incorrectMovesRemaining: Int
- var guessedLetters: [Character]
- mutating func playerGuessed(letter: Character) {
- guessedLetters.append(letter)
- if !word.characters.contains(letter) {
- incorrectMovesRemaining -= 1
- }
- }
- var formattedWord: String {
- var guessedWord = ""
- for letter in word.characters {
- if guessedLetters.contains(letter) {
- guessedWord += "\(letter)"
- } else {
- guessedWord += "_"
- }
- }
- return guessedWord
- }
- }
- @IBOutlet var lettersButtons: [UIButton]!
- @IBOutlet weak var christmassTreeImageView: UIImageView!
- @IBOutlet weak var correctWordLabel: UILabel!
- @IBOutlet weak var scoreLabel: UILabel!
- override func viewDidLoad() {
- super.viewDidLoad()
- newRound()
- }
- var currentGame : Game!
- func newRound(){
- let newWord = listOfWords.removeFirst()
- currentGame = Game(word: newWord, incorrectMovesRemaining: incorrectMovesAllowed, guessedLetters: [])
- updateUI()
- }
- func updateUI() {
- var letters = [String]()
- for letter in currentGame.formattedWord.characters {
- letters.append(String(letter))
- }
- let wordWithSpacing = letters.joined(separator: " ")
- correctWordLabel.text = wordWithSpacing
- scoreLabel.text = "Wins: \(totalWins), Losses: \(totalLosses)"
- christmassTreeImageView.image = UIImage(named: "Tree \(currentGame.incorrectMovesRemaining)")
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
- @IBAction func buttonPressed(_ sender: UIButton) {
- sender.isEnabled = false
- let letterString = sender.title(for: .normal)!
- let letter = Character(letterString.lowercased())
- currentGame.playerGuessed(letter: letter)
- updateGameState()
- }
- func updateGameState() {
- if currentGame.incorrectMovesRemaining == 0 {
- totalLosses += 1
- } else if currentGame.word == currentGame.formattedWord {
- totalWins += 1
- } else {
- updateUI()
- }
- }
- }
Add Comment
Please, Sign In to add comment