#42 猜數字小遊戲
Published in
5 min readSep 2, 2021
開始畫面
猜數字邏輯
- 用兩個變數來存取猜過的最大、最小值,最小值一開始為 0 ,最大值一開始為 100 ,若猜的數字小於答案,此時把猜的數字指派給最小值,再給 Label 顯示,若猜的數字大於答案,此時把猜的數字指派給最大值,用 Label 顯示。即可顯示要使用者猜測的範圍。
- 輸入超過範圍的數字
- 輸入非數字的情況,不能猜
- 猜錯六次,顯示文字
@IBAction func guess(_ sender: Any) {
let numberText = numberTextField.text!
let number = Int(numberText)if number != nil, number! <= maxNumber, number! >= miniNumber {
let guessNumber = number!
if guessNumber == answer {
resultLabel.text = "就是 \(guessNumber) ,你猜對了"} else if guessNumber < answer {
miniNumber = guessNumber
resultLabel.text = "\(miniNumber) ~ \(maxNumber) 之間"
numberTextField.text = ""
guessWrongCount += 1} else if guessNumber > answer {
maxNumber = guessNumber
resultLabel.text = "\(miniNumber) ~ \(maxNumber) 之間"
numberTextField.text = ""
guessWrongCount += 1
}guessWrongCountLabel.text = "剩下 \(6 - guessWrongCount) 次機會!"
}
//輸入超過範圍的數字
if number != nil , number! > maxNumber {
resultLabel.text = "\(miniNumber) ~ \(maxNumber) 之間的數字喔~~~"
guessWrongCountLabel.text = "不給你猜~~"
}// 輸入非數字的狀況
if number == nil {
resultLabel.text = "請輸入 \(miniNumber) ~ \(maxNumber) 之間的數字!!!!!"
guessWrongCountLabel.text = "不給你猜~~"
}// 猜錯六次,清空原本猜的數字,顯示文字
if guessWrongCount == 6 {
numberTextField.text = ""
gameOverLabel.isHidden = false
}// 輸入完收起鍵盤
numberTextField.endEditing(true)
}
replay 按鈕
- 把 answer 變數隨機再跑一次,猜測次數歸零。
@IBAction func replay(_ sender: Any) {
answer = Int.random(in: 1...100)
numberTextField.text = ""
miniNumber = 0
maxNumber = 100
resultLabel.text = "請輸入 \(miniNumber) ~ \(maxNumber) 之間的數字!!!!!"
guessWrongCount = 0
guessWrongCountLabel.text = "有\(6 - guessWrongCount)次機會!"
gameOverLabel.isHidden = true
}
}