#8 終極密碼
Published in
5 min readDec 2, 2023
終極密碼是很多人都會玩的遊戲,這次做個小改動,可以自己加入範圍
先拉好textflied和button、label、圖片和背景圖片
輸入範圍的button
這邊??的意思是:將textflied裡面string為nil時,變成空字串,外面再將字串換為int
Swift 特別發明了即使 nil
也能變出預設值的雙重問號。在雙重問號的左邊接 optional 變數(常數),右邊接預設值,當 optional 不為 nil
時,即解開它的包裝取值。而當 optional 為 nil
時,則回傳預設值。
@IBAction func enterrange(_ sender: UIButton) {
minNum = Int(range1.text ?? "") ?? 0
maxNum = Int(range2.text ?? "") ?? 0
randomNumber = Int.random(in: minNum!...maxNum!) }
確認的button
@IBAction func enter(_ sender: UIButton) {
let guessNum = Int(number.text ?? "") ?? 0
if randomNumber == nil {
answer.text = "請確定數字範圍並按下確定按鈕!!!"
return
}
if guessNum < randomNumber! {
minNum = guessNum
answer.text = ("太小了,再試一次!範圍:\(minNum!)~\(maxNum!)")
number.text = ""
} else if guessNum > randomNumber! {
maxNum = guessNum
answer.text = ("太大了,再試一次!\n範圍:\(minNum!)~\(maxNum!)")
number.text = ""
} else {answer.text = ("恭喜你猜中了!")
}
view.endEditing(true)
}
重玩的button
@IBAction func restgame(_ sender: UIButton) {
randomNumber = Int.random(in: minNum!...maxNum!)
number.text = ""
answer.text = ""
range1.text = ""
range2.text = ""
}
完整程式碼
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var number: UITextField!
@IBOutlet weak var answer: UILabel!
@IBOutlet weak var range1: UITextField!
@IBOutlet weak var range2: UITextField!
var randomNumber :Int?
var minNum: Int?
var maxNum: Int?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func enterrange(_ sender: UIButton) {
minNum = Int(range1.text ?? "") ?? 0
maxNum = Int(range2.text ?? "") ?? 0
randomNumber = Int.random(in: minNum!...maxNum!) }
@IBAction func enter(_ sender: UIButton) {
let guessNum = Int(number.text ?? "") ?? 0
if randomNumber == nil {
answer.text = "請確定數字範圍並按下確定按鈕!!!"
return
}
if guessNum < randomNumber! {
minNum = guessNum
answer.text = ("太小了,再試一次!範圍:\(minNum!)~\(maxNum!)")
number.text = ""
} else if guessNum > randomNumber! {
maxNum = guessNum
answer.text = ("太大了,再試一次!\n範圍:\(minNum!)~\(maxNum!)")
number.text = ""
} else {answer.text = ("恭喜你猜中了!")
}
view.endEditing(true)
}
@IBAction func restgame(_ sender: UIButton) {
randomNumber = Int.random(in: minNum!...maxNum!)
number.text = ""
answer.text = ""
range1.text = ""
range2.text = ""
}
}