實作小遊戲-猜數字

  1. 首先,我先把畫面的部分設計好,如下圖

2. 然後用藍線把全部的關聯設好,除了「Enter」跟「重新開始」這兩個button 是IBAction 之外,其他都是IBOutlet。

關於如何拉線,在另一篇已有介紹,所以這邊就不多說啦!

3. 關聯拉好了之後,要來寫程式的部份。我宣告了2個變數,分別代表最後的答案,跟還剩下幾次機會。

var finalNumber: Int = 0 //答案
var chance = 6 //機會次數

viewDidLoad應該是程式一開的時候,最先跑的function,我在裡面定義一些初始化的參數。

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
finalNumber = Int(arc4random_uniform(98)) + 2 //隨機出現數字2~99
minLabel.text = String(1)
maxLabel.text = String(100)
chance = 6
inputNum.text = nil
chanceLabel.text = “還剩\(chance)次機會”
textBoxLabel.text = “請於以下範圍內,猜一個數字”
}

我定義一個function叫作running,他做的是這支程式主要的判斷

看起來很複雜,其實裡面就只是一堆if的判斷式,我大概說明一下這些if在幹麻:

第1個if:這是optional binding,如果有輸入數字的話,才會做接下來的動作

第2個if:剩餘的機會必須大於0,如果機會剩0次,代表你已經輸了!

第3個if:判斷輸入的數字是否有在我指定的區間,如果沒有也不讓你輸入,省得浪費一次寶貴的機會

第4個if:判斷你的答案對不對,如果猜中了,就恭喜你完全正確!

第5個if:如果你沒猜中,我就判斷你機會如果剩0次,就直接告訴你答案了

第6個if:如果你還有機會,就告訴你猜的數字太大或太小。

最後,我讓Enter這個button按下去的時候,呼叫剛才的running,

重新開始的button則是呼叫viewDidLoad,重設那些變數。

@IBAction func enterButton(_ sender: AnyObject) {
running()
}
@IBAction func restartButton(_ sender: AnyObject) {
viewDidLoad()
}

最後試玩:

GITHUB:

Like what you read? Give debbie tseng a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.