🎲兒時回憶: 用Python寫一個猜數字小遊戲🀄 可線上玩

更新於 發佈於 閱讀時間約 5 分鐘

相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。

今天要示範如何用Python寫一個猜數字遊戲
並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。


場景:

電腦設定從1~100隨機挑一個當作隱藏數字,

讓使用者扮演玩家去猜,看使用者花幾回合才猜到電腦設定的隱藏數字。


上層思考邏輯與框架

  1. 先讓電腦隨機從1~100裡面挑一個數字,作為隱藏數字。
  2. 讓使用者去猜數字。
    假如猜錯,電腦提示猜得太大,還是猜得太小。
    假如猜中,輸出成功猜對的訊息。


中層功能元件分析


1.一 ~ 一百的隨機數如何產生?


python 的 random package提供 random 函數

random.random() 會隨機產生小數x, 其中 0 <= x < 1

乘上一百就是 0 <= 100x < 100

再加一就是 1 <= 100x + 1 < 101

最後再轉型成整數,取int(),就是1~100的隨機整數


對應到python的程式碼如下

import random   
number_to_guess = int(random.random() * 100) + 1


2.如何建立循環(相當於程式語言中迴圈的邏輯)?


如果 猜的數字 不等於 電腦的隨機數:

則繼續猜...


對應到python的程式碼,就是while 的迴圈與流程控制

while guess != number_to_guess:

        guess = int(input("\n 請猜一個數字:"))

... 檢查是否有猜中 ...


3.如何接收玩家猜的數字?

python提供內建的input("提示訊息")的標準輸入function,

接收到的預設型別是字串,我們接著轉型為int 整數,儲存到guess這個變數裡。


guess = int(input("\n 請猜一個數字:"))


4.怎麼判斷玩家猜對 還是 猜錯?


如果 使用者猜的數字 等於 電腦的隨機數:

則 輸出 恭喜猜中的提示訊息

否則 提示猜得太大 還是 猜得太小

對應到python的程式碼,就是if ... elif ... else ...的流程控制。



    print("歡迎來到猜數字遊戲!")
    print("電腦已經選了一個1到100之間的數字。")

    while guess != number_to_guess:

        guess = int(input("\n 請猜一個數字:"))

# 統計猜了幾回合,每猜一次,累加1
        attempts += 1

        if guess < number_to_guess:
            print("太小了,再試一次!")

        elif guess > number_to_guess:
            print("太大了,再試一次!")

        else:
            print(f"恭喜你,猜中了!你總共猜了 {attempts} 次。")

5.如何產生提示訊息?


相當直覺,用內建的print()標準輸出function即可。

想印什麼就寫什麼,輸出有變數時記得用f-string 搭配 {變數} 包起來


例如:

print(f"恭喜你,猜中了!你總共猜了 {attempts} 次。")

底層的完整實作: 小遊戲 猜數字

import random

def guess_number_game():

    number_to_guess = int(random.random() * 100) + 1

# 紀錄玩家猜的數字,初始化成-1,代表還沒開始猜
    guess = -1

# 紀錄玩家猜了幾回合​
    attempts = 0

    print("歡迎來到猜數字遊戲!")
    print("電腦已經選了一個1到100之間的數字。")


    while guess != number_to_guess:

        guess = int(input("\n 請猜一個數字:"))

        attempts += 1



        if guess < number_to_guess:
            print("太小了,再試一次!")

        elif guess > number_to_guess:
            print("太大了,再試一次!")

        else:
            print(f"恭喜你,猜中了!你總共猜了 {attempts} 次。")



if __name__ == "__main__":

    guess_number_game()

試玩畫面

raw-image

線上執行 與 試玩

https://www.onlinegdb.com/mXElvaOLw

留言
avatar-img
留言分享你的想法!
有點想起那部電影…李奧納多那部
小松鼠-avatar-img
發文者
2024/08/09
林燃(創作小說家) 默契不錯 夢中夢 乾杯🥂
小松鼠-avatar-img
發文者
2024/08/13
動手學python 的引言與目錄提及了這篇文章,趕快過去看看吧!
avatar-img
小松鼠的演算法樂園
96會員
427內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/09/27
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
Thumbnail
2024/09/27
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
Thumbnail
2024/08/27
華容道(數字版)的遊戲描述 初始給定一個1~15數字隨機打散的4x4遊戲版, 讓使用者透過移動空格來重新排列數字, 最後數字排成1~15,而且空格剛好在右下角的時候,遊戲結束。
Thumbnail
2024/08/27
華容道(數字版)的遊戲描述 初始給定一個1~15數字隨機打散的4x4遊戲版, 讓使用者透過移動空格來重新排列數字, 最後數字排成1~15,而且空格剛好在右下角的時候,遊戲結束。
Thumbnail
2024/08/13
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
2024/08/13
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
學習如何使用Python編寫一個數字猜謎遊戲,從中學習隨機數生成、使用者輸入、條件判斷和迴圈等程式設計基礎概念。
Thumbnail
學習如何使用Python編寫一個數字猜謎遊戲,從中學習隨機數生成、使用者輸入、條件判斷和迴圈等程式設計基礎概念。
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
題目敘述 題目會給定一個猜數字的場景和介面 (包含一個可以呼叫,驗證是否為答案的API guess() function), 要求我們實現猜數字的function guessNumber(int n)。 題目已經事先設定好一個祕密數字,要求我們去找出來那個祕密數字是多少。 就好像小時候
Thumbnail
題目敘述 題目會給定一個猜數字的場景和介面 (包含一個可以呼叫,驗證是否為答案的API guess() function), 要求我們實現猜數字的function guessNumber(int n)。 題目已經事先設定好一個祕密數字,要求我們去找出來那個祕密數字是多少。 就好像小時候
Thumbnail
為什麼要學習撰寫程式? 使用別人所撰寫的軟體時,總是會受限於別人所提供的特定功能,但是當你遇到了一些工作是目前現有的軟體都幫不上忙的情況該怎麼辦? 如果你會撰寫程式,這時候就可以自己創造一個專為解決此工作的程式;換句話說,撰寫程式讓你擁有控制電腦的力量。 安裝 Python 首先必須在電腦
Thumbnail
為什麼要學習撰寫程式? 使用別人所撰寫的軟體時,總是會受限於別人所提供的特定功能,但是當你遇到了一些工作是目前現有的軟體都幫不上忙的情況該怎麼辦? 如果你會撰寫程式,這時候就可以自己創造一個專為解決此工作的程式;換句話說,撰寫程式讓你擁有控制電腦的力量。 安裝 Python 首先必須在電腦
Thumbnail
今天想跟大家分享一個用python做的小遊戲,叫做1A2B,這個遊戲的規則很簡單,就是電腦會隨機產生一個四位數的數字,然後玩家要猜這個數字是什麼,每次猜完,電腦會給出幾A幾B的提示,A表示位置和數字都對,B表示數字對但位置不對;例如,如果電腦產生的數字是1234,玩家猜5678,那麼電腦會回
Thumbnail
今天想跟大家分享一個用python做的小遊戲,叫做1A2B,這個遊戲的規則很簡單,就是電腦會隨機產生一個四位數的數字,然後玩家要猜這個數字是什麼,每次猜完,電腦會給出幾A幾B的提示,A表示位置和數字都對,B表示數字對但位置不對;例如,如果電腦產生的數字是1234,玩家猜5678,那麼電腦會回
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
Thumbnail
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
Thumbnail
當我們需要在程式中模擬或實作一些隨機發生的事件,例如模擬猜拳、丟骰子的結果,便需要程式可以根據開發者輸入的數值範圍、型態等,隨機產生一個結果,而Python的random()函數便是用於實現這個功能。
Thumbnail
當我們需要在程式中模擬或實作一些隨機發生的事件,例如模擬猜拳、丟骰子的結果,便需要程式可以根據開發者輸入的數值範圍、型態等,隨機產生一個結果,而Python的random()函數便是用於實現這個功能。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News