iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 29

Day29 : 小專案2 - 猜數字遊戲(終極密碼)

  • 分享至 

  • xImage
  •  

今天的專案目標是猜數字遊戲
功能 :
1.電腦隨機產生一個數字
2.玩家輸入猜測
3.提示「太大 / 太小 / 猜中了」
4.計算猜測次數
5.猜中後可以再玩一次
6.有難度選擇(1~50、1~100、1~500)

https://ithelp.ithome.com.tw/upload/images/20251013/201788728SV9iB4Z7n.png

  • 把 Python 的 random 功能叫進來,random 裡面有 randint() 可以產生隨機整數的函式
  • 每一局答案都要不一樣,所以用隨機數

https://ithelp.ithome.com.tw/upload/images/20251013/20178872U5MlB1gfjc.png

  • 這是一個函式(function),叫 generate_number,功能是「根據難度回傳一個隨機數」
  • level 是函式的輸入參數(呼叫時傳進去的難度)
  • random.randint(a, b) 會回傳包含 a 與 b 的隨機整數(例如 random.randint(1,50) 可能是 1、2、...、50 中的一個)
  • 如果 level == 1:答案在 1~50 之間
  • 如果 level == 2:答案在 1~100 之間
  • 如果 level == 3:答案在 1~500 之間

https://ithelp.ithome.com.tw/upload/images/20251013/20178872g6o5KszP2X.png

  • play_game() 是一個函式,負責執行「一局遊戲」的流程
  • answer:呼叫 generate_number(level) 得到的正確答案(隨機數)
  • guess_count = 0:計數器,記錄玩家猜了幾次

https://ithelp.ithome.com.tw/upload/images/20251013/20178872ywFliHhZfB.png

  • while True: 代表一個「無限迴圈」,程式會重複執行這個區塊,直到遇到 break 跳出
  • 每次迴圈都會要求玩家輸入一個數字(並轉成整數),然後把 guess_count 加 1

https://ithelp.ithome.com.tw/upload/images/20251013/20178872xlVo2VSXVt.png

  • main() 是程式的主控流程,用來讓玩家可以玩多局
  • 每次呼叫 play_game() 完成一局後,詢問玩家要不要再玩一次
  • again.lower() 把輸入轉成小寫(這樣 Y 與 y 都可接受)
  • 如果玩家輸入不是 'y',就 break 跳出 main() 的迴圈,結束程式

https://ithelp.ithome.com.tw/upload/images/20251013/20178872qnqIbIoGSk.png

  • 這段是 Python 的慣用寫法
  • 當你直接用 python 檔案名.py 執行時,name 的值是 "main",就會進入 main()
  • 如果這個檔案被別的程式 import,name 就不是 "main",main() 不會自動執行。這樣可以避免被 import 時不小心直接跑遊戲

最後結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251013/20178872f6DjrYVv9G.png
https://ithelp.ithome.com.tw/upload/images/20251013/20178872pnBJsKxJtw.png
https://ithelp.ithome.com.tw/upload/images/20251013/20178872fu7vo9C6rl.png
https://ithelp.ithome.com.tw/upload/images/20251013/20178872UIaxQ2MsOv.png

今天使用到的技能有:

  • random 模組
  • 函式(def)
  • while 迴圈
  • if/elif/else 判斷
  • 變數與計數器
  • input()

上一篇
Day28 : 小專案1 - 記帳小幫手
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言