🎲兒時回憶: 用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

86會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
在流程控制中,最常用的就是for loop 或是 while loop 語法了。 最常見的場景就是根據條件判斷式,重複執行特定的指令。 如果要在python寫出類似C/C++ for loop,可以怎麼寫呢? 透過索引去進行迭代 for var in range( start=0, sto
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
在流程控制中,最常用的就是for loop 或是 while loop 語法了。 最常見的場景就是根據條件判斷式,重複執行特定的指令。 如果要在python寫出類似C/C++ for loop,可以怎麼寫呢? 透過索引去進行迭代 for var in range( start=0, sto
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
分享一個猜數字的遊戲題目,給予提示讓玩家找出正確的四位數密碼。
Thumbnail
透過數學遊戲,孩子可以在快樂中學習數學,增強對數學的興趣和理解。這篇文章將推薦幾款適合孩子的數學遊戲,讓孩子在玩樂中不知不覺地掌握數學知識,提升學習興趣。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
24點數學遊戲是一款適合小朋友與想動動腦的朋友們的小遊戲,遊戲規則簡單易懂,可訓練邏輯能力。遊戲分為單人與多人模式,可以讓玩家自行挑戰高分或是與其他玩家競爭。算式中不同的數學符號會對應不同的加分機制。遊戲網站連結與專案 repo 也都提供在文章中。
在這個充滿挑戰和樂趣的課程中,我們將教導小朋友們如何通過下圍棋來提升他們的穩定性和數理邏輯!
Thumbnail
會有這樣的構想其實源自於我的高中記憶。以前高中的時候,有群可愛的好友喜歡策畫生日。我們很喜歡玩類似密室逃脫或闖關的遊戲。在那個人生日前幾週,一起去買他可能會喜歡的禮物。為那些禮物寫小故事、謎語與短詩,然後偷偷藏在校園的各個角落。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
分享一個猜數字的遊戲題目,給予提示讓玩家找出正確的四位數密碼。
Thumbnail
透過數學遊戲,孩子可以在快樂中學習數學,增強對數學的興趣和理解。這篇文章將推薦幾款適合孩子的數學遊戲,讓孩子在玩樂中不知不覺地掌握數學知識,提升學習興趣。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
24點數學遊戲是一款適合小朋友與想動動腦的朋友們的小遊戲,遊戲規則簡單易懂,可訓練邏輯能力。遊戲分為單人與多人模式,可以讓玩家自行挑戰高分或是與其他玩家競爭。算式中不同的數學符號會對應不同的加分機制。遊戲網站連結與專案 repo 也都提供在文章中。
在這個充滿挑戰和樂趣的課程中,我們將教導小朋友們如何通過下圍棋來提升他們的穩定性和數理邏輯!
Thumbnail
會有這樣的構想其實源自於我的高中記憶。以前高中的時候,有群可愛的好友喜歡策畫生日。我們很喜歡玩類似密室逃脫或闖關的遊戲。在那個人生日前幾週,一起去買他可能會喜歡的禮物。為那些禮物寫小故事、謎語與短詩,然後偷偷藏在校園的各個角落。