-
Notifications
You must be signed in to change notification settings - Fork 0
/
ViewController.swift
113 lines (97 loc) · 3.58 KB
/
ViewController.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
//
// ViewController.swift
// Number Guessing App
//
import UIKit
class ViewController: UIViewController {
//Class Level Variables
let lowerbound: Int = 1
let upperBound: Int = 50
var userGuess: Int = 1
var magicNumber: Int!
var success: Bool = false
var numberG: Int = 0
var m: String = "1 guess"
//MARK: - IB Outlets Here
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var guess: UILabel!
@IBOutlet weak var button: UIButton!
//MARK: - App Fucntions
@IBAction func guessButtonPressed(_ sender: Any) {
if button.title(for: .normal) == "Restart"{
alert()
}
else{
compareGuess()
numberG += 1
}
}
@IBAction func sliderValueChanged(_ sender: Any) {
let value = Int(slider.value)
guess.text = String(value)
userGuess = value
}
//The "init" function. This function gets called once right before the user can see the screen.
//We usually do all the setup for our apps in this function
override func viewDidLoad() {
super.viewDidLoad()
generateRandomNumber()
}
//Generates a random number that the user has to guess
func generateRandomNumber(){
magicNumber = .random(in: lowerbound ... upperBound)
print("Number: \(magicNumber ?? 1)") }
//Compare the user guess with the magic number
func compareGuess() -> Void {
titleLabel.font = UIFont(name: "MarkerFelt-Wide", size: 35.0)
if userGuess != magicNumber {
titleLabel.textColor = UIColor.systemRed
slider.thumbTintColor = UIColor.systemRed
slider.tintColor = UIColor.systemPink
button.backgroundColor = UIColor.systemRed
if userGuess > magicNumber{
titleLabel.text = "The magic number is lower than \(userGuess), don't be so greedy!"
}
else if userGuess < magicNumber {
titleLabel.text = "The magic number is higher than \(userGuess), do better!"
}
}else{
titleLabel.text = "Amazing!\nYour guess is correct"
titleLabel.textColor = UIColor.systemGreen
slider.thumbTintColor = UIColor.systemGreen
slider.tintColor = UIColor.cyan
button.backgroundColor = UIColor.systemGreen
button.setTitle("Restart", for: .normal)
}
}
//Reset the guessing game
func backToGuess() -> Void {
titleLabel.text = "Guess the number!"
titleLabel.font = UIFont(name: "MarkerFelt-Wide", size: 40.0)
titleLabel.textColor = UIColor.systemOrange
slider.thumbTintColor = UIColor.systemOrange
slider.tintColor = UIColor.systemYellow
slider.value = 1
guess.text = "1"
button.backgroundColor = UIColor.systemOrange
button.setTitle("Guess!", for: .normal)
numberG = 0
generateRandomNumber()
}
//Alert the number of guess
func alert() {
if numberG > 1{
m = "\(numberG) guesses"
}
else{
m = "1 guess"
}
let alert = UIAlertController(title: "You have used", message: m, preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "Close", style: UIAlertAction.Style.default, handler: { _ in
self.backToGuess()
}))
self.present(alert, animated: true, completion: nil)
}
//MARK: - Put IB Actions Below Here
}