#44 猜數字 App

好像昨天就做完的作業,今天要錄影時才發現豈止做完,還發現大bug…

有發現問題在哪嗎XD…

功能使用:
AutoLayout排版
Int.random()
if…else…statement判斷密碼對錯
UIAlertController彈跳視窗
鍵盤縮放

這一題與上次做的App解鎖畫面很類似,透過不同題目熟悉if…else…用法
這邊關於AutoLayout跟UIAlertController就不加多提

實作

random(in:)

遊戲玩法是讓玩家猜一個數字,數字是隨機生成,範圍一開始有訂(0~50)而範圍提示要能根據使用者作答更改範圍

  • Int.random(in: 0…50):可生成0~50任何一數字

接下來是要開始動腦的地方,除了單純的猜數字以外,還要設想使用者會輸入的情況

if…else…statement

情境一

  • 輸入數字與解答比較

這邊額外預設玩家不小心輸入的數字超出範圍,包含大於上限(upperBound)與下限(lowerBound)

當輸入的數字大於答案卻沒超過上限則代表猜錯,並且將輸入的數字設定成新的上限值,反之亦然

/*情境1. 等於答案2. 輸入數字大於答案2-1. 輸入數字大於範圍(提醒超出範圍)2-2. 若沒有則將輸入的數字設成上限值3. 輸入數字小於答案3-1. 輸入數字小於範圍(提醒超出範圍)3-2. 若沒有則將輸入的數字設成下限值*/
邏輯真的要很清楚…

情境二

  • 有無輸入/跟機會次數比較

如果只是給你一直猜當然一定會猜中,所以這邊有另外設定猜的次數條件,另外確認玩家有輸入東西

/*情境1. 未輸入情況2. 機會大於一次3. 機會小於一次(0次,代表已沒機會輸了!)*/

chanceNumber設定判斷大於/小於1次而不是0次是因為這樣你就有7次猜測機會(0.1.2.3.4.5.6)

UIAlertAction

這邊首次將UIAlertAction裡的handler展開,在輸入任何variable/function都必須加入self(xcode很貼心會幫你提醒)

鍵盤縮放

touchesBegan是UIKit裡面的一個function,只要輸入幾個字他就會自動跳出來,他是代表你點選畫面後可以設定的動作,這裡使用view.endEditing就是取消編輯,鍵盤就會自動縮下!

APP Demo

後記

若是條件式太多的話最好應該拆開來判斷,尤其若都寫在else if後面可能會導致一些判斷是被跳過而產生問題,不然其實也可以用switch感覺會更清楚…

喔對了,這一個作品是第一次幾乎90%以上都是自己寫的沒參考別人,是個值得慶祝的一件事XD…

Reference

Github

--

--