iT邦幫忙

0

【Python】7.新手村第一關:用 30 行 Code 寫出你的第一個「自動猜數字機」

  • 分享至 

  • xImage
  •  

依序修煉了:變數的便利貼哲學、資料型態的妖精鏡、if-else 的大腦判斷、for/while 的無盡迴圈,以及 List/Dict 的收納大法。

如果這時候心裡就想說:「學了這麼多,到底能拿來幹嘛?」

那麼今天就是檢驗成果的時候了!今天我們不學任何新的語法,我們要用之前學過的所有內功,手把手打造一個經典的互動遊戲——「自動猜數字機」!

🎯 遊戲規則與功能設計

我們要做的遊戲規格很簡單:

  1. 電腦在心理偷偷想一個 1 到 100 之間的神秘數字。
  2. 讓玩家在終端機輸入數字去猜。
  3. 玩家如果猜太大,電腦要提示「太大了!」;猜太小,提示「太小了!」。
  4. 只要還沒猜中,遊戲就要一直進行(while 迴圈的絕佳舞台)。
  5. 猜中的那一刻,印出恭喜訊息,並告訴玩家總共猜了幾次。

🛠️ 第一步:請出外包工程師——引入 random 模組

電腦要怎麼「偷偷想一個數字」?我們需要讓電腦能產生隨機變數。

Python 內建有一個專門產生隨機數的寶庫叫 random。我們在程式的最開頭寫下這行:

import random

這行指令叫 import(匯入),就像是我們打電話請一個專門處理隨機數字的「外包工程師」來辦公室幫忙。
接著,我們請他幫我們決定一個 1 到 100 的答案,並用便利貼 answer 貼上去:

answer = random.randint(1, 100)

🛠️ 第二步:搭建遊戲的主架構

因為不知道玩家會猜幾次才中,我們要用 while 迴圈。只要玩家還沒猜對,就要一直讓他猜。
同時,我們需要一個變數 count 來記錄玩家猜了幾次。

我們先用一個最直白的寫法——while True(無窮迴圈),代表「只要不停電,遊戲就一直跑」,直到猜對了,我們再用 break(破壞迴圈)來強制跳出。

count = 0  # 紀錄猜測次數

while True:
    # 讓玩家輸入數字
    guess = input("請輸入 1 到 100 之間的數字:")

⚠️ 超級大陷阱(請拿出照妖鏡觀念!):

透過 input() 讓玩家在螢幕輸入的任何東西,電腦都會預設它是「字串(str)」!
如果你輸入 50,電腦拿到的是 "50"。如果直接拿字串去跟數字比大小,電腦會直接崩潰給你看。所以,我們必須用 int() 強制把它轉換成整數:

    guess = int(guess)  # 把字串 "50" 轉成整數 50
    count = count + 1   # 猜測次數加 1

🛠️ 第三步:裝上大腦(if-else 條件判斷)

接下來,我們要用 Day 4 學到的 if-elif-else 來幫驗票員裝大腦,比較玩家猜的 guess 與正確答案 answer 的關係:

    if guess > answer:
        print("太大了!再試一次。")
    elif guess < answer:
        print("太小了!再試一次。")
    else:
        print(f"🎉 恭喜你答對了!正確答案就是 {answer}!")
        print(f"你總共猜了 {count} 次。")
        break  # 終極關鍵:猜對了,按下斷電鈕,跳出 while 迴圈!

(註:f"..." 是 Python 的字串格式化超能力,可以直接把變數塞進大括號 {} 裡印出來,非常方便!)

📝 完整 20 行程式碼大公開

把上面的碎片拼起來,就是一個完整的專案了!請在 VS Code 裡建立一個 guess_game.py,把以下程式碼完整複製進去並按下執行(▶):

import random

#1. 電腦隨機決定一個 1~100 的答案
answer = random.randint(1, 100)
count = 0

print("=== 歡迎來到自動猜數字機 ===")

#2. 開啟遊戲無盡迴圈
while True:
    guess = input("請輸入 1 到 100 之間的數字:")
    guess = int(guess)  # 記得轉成整數!
    count = count + 1   # 紀錄次數
    
   #3. 判斷大小
    if guess > answer:
        print("❌ 太大了!再試一次。")
    elif guess < answer:
        print("❌ 太小了!再試一次。")
    else:
        print("\n===============================")
        print(f"🎉 恭喜你答對了!正確答案就是 {answer}!")
        print(f"📊 你總共猜了 {count} 次。")
        print("===============================")
        break  # 猜對了,結束遊戲

快去執行看看,自己玩一把吧!

看著黑底白字的視窗隨著你的輸入跳出「太大了」、「太小了」,最後跳出恭喜畫面。這一刻,你不再只是個抄程式碼的機器,而是用邏輯創造出一個虛擬世界的創作者!

這七天來,從零開始一磚一瓦蓋出了這個小遊戲。雖然它看起來很陽春,但裡面涵蓋的邏輯拆解、型態轉換、迴圈控制,跟矽谷大廠工程師每天在寫的架構,本質上完全是一模一樣的。

下一次,我們要跳出新手村的舒適圈,去探索更進階的 Python 密技,包括如何把程式碼打包成「自訂函式(Function)」、處理惱人的閃退錯誤(try-except),甚至是開始抓取網路資料(爬蟲)!

🧑💻 新手村大挑戰

如果你覺得這個遊戲太簡單,試著動手改改看程式碼:
• 限制玩家「只能猜 5 次」,如果 5 次沒猜中,電腦就判定 Game Over 並公布答案(提示:可以用一個變數紀錄次數,或者把 while 改成 for 迴圈唷!)。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言