#12–2 猜數字
Published in
4 min readAug 26, 2020
Property
//數字的輸入框
@IBOutlet weak var numberTextField: UITextField!//範圍中的最小數字
@IBOutlet weak var minNumberLabel: UILabel!//範圍中的最大數字
@IBOutlet weak var maxNumberLabel: UILabel!//輸入數字後的結果文字顯示
@IBOutlet weak var resultLabel: UILabel!//剩餘的次數
@IBOutlet weak var chanceLabel: UILabel!//亂數的答案
var answer = Int.random(in: 1…100)//可以猜6次
var chanceCount = 6
Method 1 -按下送出按鈕後的動作
- 確認 TextField 有數字按下送出按鈕才能開始動作
- 確認輸入的數字是否正確,如果不正確提供範圍和告知結果
- 總共有 6 次的猜測機會,每按下按鈕一次就減少一次猜測機會
- 送出數字後就清空 TextField 並收起鍵盤
- 用掉最後一次猜測機會沒有猜中就提供正確答案
@IBAction func guess(_ sender: Any) {let numberText = numberTextField.text!let number = Int(numberText)//限制按下送出按鈕時 numberTextField 必須不是空的才能有動作
if number != nil {let guessNumber = number!if guessNumber == answer {resultLabel.text = “答對了”} else if guessNumber < answer {resultLabel.text = “數字有點小囉”//把數字填進minNumberLabel裡,成為範圍中最小的數字
minNumberLabel.text = “\(guessNumber)”//剩餘次數減1
chanceCount = chanceCount — 1//剩餘次數算出來的值填入Label
chanceLabel.text = “\(chanceCount)”} else {resultLabel.text = “數字有點大了”//把數字填進maxNumberLabel裡,成為範圍中最大的數字
maxNumberLabel.text = “\(guessNumber)”chanceCount = chanceCount — 1chanceLabel.text = “\(chanceCount)”}//當剩餘次數0時,提供答案
if chanceCount == 0{resultLabel.text = “結束了!!答案是 \(answer)”} else if chanceCount < 0 {resultLabel.text = “嘖!不是已經告訴你答案了嗎😤”}}//清空TextField
numberTextField.text = “”//把鍵盤收起來
view.endEditing(true)}
Method 2 -按下再一次按鈕後的動作
按下再一次按鈕後須產生一個新的答案,並將程式恢復到原本的樣子
@IBAction func replay(_ sender: Any) {//重新亂數產生一個答案
answer = Int.random(in: 0…100)//剩餘次數回復到6次
chanceCount = 6chanceLabel.text = “\(chanceCount)”//範圍的最小值回到 1
minNumberLabel.text = “1”//範圍的最大值回到 100
maxNumberLabel.text = “100”//清空告知結果的Label
resultLabel.text = “”}