(來個遊戲吧!) 猜數字 和 1A2B App

寫程式也可以 自娛娛人,非常有趣 ! 本作業分為兩個版本 :
1. Game 1 簡單版 :
猜 0~100 的一個整數,玩者有 6 次機會,比方 標準答案是 80,使用者第一次猜 10 時,顯示範圍為大於等於 11。當使用者接著猜 100 時,顯示範圍為 11 ~ 99
2. Game2進階版:
猜不重複數字的 4 位数 (數字可以 0 ~ 9),依據使用者猜的數字,顯示幾 A 幾 B 的結果,A 前面的数字為位置與數字皆正確的個數,B 前面的數字為數字正確但位置不正確的個數。比方答案是 1234,當使用者猜 0132 時,顯示 1 A 2 B。當使用者猜 1253 時,顯示 2 A 1 B

程式的結構如下 :

Game1 的程式中,有一個 Declaration 亂數取得上限是 100 的整數寫法
random = Int(arc4random_uniform(100))

func arc4random_uniform(_ __upper_bound: UInt32) -> UInt32

隨機數字,數字和字串之間的轉換 Int(numberTextField.text!) 是 文字轉型 整數的寫法,也是其中重點!

Game2 中 import GamePlayKit 是為了要運用 GKShuffledDistribution
這函數 ,下面英文中,我反黑的文字重點是 “fair randomization”就是公平的亂數原則 (下圖紅框中的 註記重點與說明 !!!),這是這個遊戲最大的應用重點

The behavior of a shuffled distribution is sometimes called “fair” randomization, because true randomness in games can result in extended “lucky streaks” or “unlucky streaks” for players. To create a shuffled distribution and use it to generate random numbers, use the methods defined by its superclass GKRandomDistribution.

再來就是判斷 1A2B 的邏輯思維 (請務必參考我詳細的註記與說明)

成果如下 :

程式碼如下 :

--

--