今天要利用之前學到的東西寫一個猜數字遊戲,此猜數字遊戲要符合以下條件:
1 猜數字範圍介於0-99間,且包含0跟99,故程式在開始的時候必須要隨機生成一個0-99間數字。
2 若玩家輸入的數字等於程式生成的數字的話,顯示Bingo,代表玩家贏得了遊戲。
3 若玩家輸入數的數字超出了範圍,則顯示Out of range, Try again,要求玩家重新輸入數字,若輸入的範圍還是超過則以此類推,若輸入在範圍內得重新進入比較。
4 若範圍已經縮小到 大值 – 小值 小於等於2,也就是玩家剩兩個數字可以猜時,如果玩家猜錯,則遊戲結束,玩家輸掉遊戲,顯示Game Over。
程式實作如下:
Step 1 因為設定的範圍是0-99間,因此宣告最大值max = 99、最小值min = 0
為整數int。
Step 2 要取得使用者輸入的數,使用scanner方法。
Step 3 宣告number為int,並由電腦產生這個number,使用random方法。
Step 4 接著進入while迴圈,條件設為true,代表只要程式執行就會進入迴圈。
Step5 第一個if條件式,在每次迴圈執行時,都先檢查一次 大值 – 小值 是否有小於等於2,若符合此條件則則進入此迴圈,代表玩家輸了遊戲,顯示Game Over,並將scanner close掉,不再請使用者輸入數值,且break跳出迴圈,結束程式執行。
執行結果如下
Step 6 若不符合第一個if條件式,則印出Please input a number,並取得使用者輸入的數字input,並宣告其為int。
執行結果如下
Step 7 測試使用者輸入的數是否有在範圍內。用if else迴圈,若input > 99
或0 > input,顯示Out of range, Try again,並請使用者再次輸入。
執行結果如下
Step 8 測試輸入的數(input)比隨機產生的數(number)大還是小,
若比較大,印出(min : input – 1)也就是使用者接下來要猜的範圍,
反之比較小的話,印出(input + 1 : max),max 跟 min 的值,在迴圈裡是會一直變的,輸入的值比較大的話則max = input – 1,反之min = input + 1。
執行結果如下
Step 9 若使用者輸入的數=電腦產生的數,顯示Bingo,玩家贏的遊戲,跳出迴圈結束程式。
程式全碼如下