Python學習筆記-1A2B遊戲

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


前言

今天想跟大家分享一個用python做的小遊戲,叫做1A2B,這個遊戲的規則很簡單,就是電腦會隨機產生一個四位數的數字,然後玩家要猜這個數字是什麼,每次猜完,電腦會給出幾A幾B的提示,A表示位置和數字都對,B表示數字對但位置不對;例如,如果電腦產生的數字是1234,玩家猜5678,那麼電腦會回答0A0B;如果玩家猜1324,那麼電腦會回答2A2B。
我之所以想用python做這個遊戲,是因為我覺得python它有很多內建的函式和模組,可以讓我們很方便地實現各種功能,而且python的語法很簡潔和易讀,不需要像其他語言那樣寫很多冗長和複雜的代碼,我也覺得1A2B是一個很有趣和挑戰性的遊戲,它可以訓練我們的邏輯思考。
接下來,介紹一下我用python寫的1A2B遊戲的程式碼,首先,要導入random模組,這個模組可以讓我們使用隨機相關的函式,然後,我定義了一個函式叫做generate_number,這個函式的作用是產生一個四位數的數字,並且確保每一位數都不重複。
這個函式的邏輯是這樣的:先創建一個空列表,然後用一個while迴圈不斷地從0到9中隨機選擇一個數字,如果這個數字沒有在列表中出現過,就把它加入列表中;如果列表的長度達到4,就跳出迴圈。
最後,把列表中的數字轉換成字串並連接起來,返回這個字串作為答案。
import random
def generate_number():
    numbers = []
    while len(numbers) < 4:
        digit = random.randint(0, 9)
        if digit not in numbers:
            numbers.append(digit)
    answer = ''.join(map(str, numbers))
    return answer
print("歡迎來到1A2B遊戲!")
print("請猜一個四位數字,其中每個位數都不重複。")
answer = generate_number()
win = False
while not win:
    guess = input("請輸入您的猜測:")
    if len(guess) != 4 or len(set(guess)) != 4:
        print("無效的輸入。請輸入一個四位數字,其中每個位數都不重複。")
        continue
    A = 0
    B = 0
    for i in range(4):
        if guess[i] == answer[i]:
            A += 1
        elif guess[i] in answer:
            B += 1
    print("{}A{}B".format(A, B))
    if A == 4:
        print("恭喜您猜對了!")
        win = True
    else:
        print("再試一次!")
print("感謝您的遊玩!")

整理

  1. import random: 導入Python的random模組,用於生成隨機數。
  2. def generate_number(): 定義了一個函數generate_number(),用於生成一個四位數字的答案,該函數使用random.randint()生成隨機數字,並確保每個位數都不重複,最後,它將生成的數字轉換為字串形式並返回。
  3. print("歡迎來到1A2B遊戲!")print("請猜一個四位數字,其中每個位數都不重複。"):歡迎信息和遊戲說明,向使用者介紹遊戲規則。
  4. answer = generate_number(): 呼叫generate_number()函數生成一個四位數字的答案,並將它存儲在變數answer中。
  5. win = False: 創建一個布林值win,用於標記是否贏得遊戲。
  6. while not win:: 進入一個無限循環,直到winTrue(表示贏得遊戲)時才結束。
  7. guess = input("請輸入您的猜測:"): 提示使用者輸入他們的猜測,並將輸入存儲在變數guess中。
  8. if len(guess) != 4 or len(set(guess)) != 4:: 檢查使用者輸入的猜測是否為四位數字且每個位數都不重複,如果條件不滿足,打印無效輸入的錯誤信息並繼續下一輪循環。
  9. A = 0B = 0: 創建兩個變量AB,分別用於記錄猜測中數字位置正確(A)和數字正確但位置不正確(B)的個數。
  10. for i in range(4):: 進入一個循環,遍歷猜測的每個位數。
  11. if guess[i] == answer[i]:: 如果猜測的某個位數和答案的相應位數相等,則A加1。
  12. elif guess[i] in answer:: 如果猜測的某個位數在答案中但位置不正確,則B加1。
  13. print("{}A{}B".format(A, B)): 打印猜測的結果。
  14. if A == 4:: 如果A的值為4,表示所有位數都正確,則猜測正確,贏得遊戲,打印贏得遊戲的信息並將win設置為True,從而跳出無限迴圈。
  15. else:: 如果猜測不正確,打印再試一次的提示信息。
  16. print("感謝您的遊玩!"): 打印遊戲結束的感謝信息。

感謝您閱讀本篇文章!我們很高興您能從中獲得一些有用的資訊。如果您喜歡這篇文章,請不要吝嗇您的支持,您可以:
  1. 按下愛心:這樣我們就知道您對這篇文章的喜愛程度,也可以讓更多人看到它。
  2. 分享文章:如果您認為這篇文章也能幫助其他人,請把它分享出去。
  3. 追蹤我們:如果您想持續收到更多類似的內容,請點擊追蹤按鈕。
  4. 支持我們:如果您願意,您也可以成為我們的贊助者。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
「Python學習筆記:輕鬆掌握程式設計」是一個豐富的Python學習資源,幫助你從零基礎起步,逐步掌握這個強大的程式語言。這份筆記涵蓋了變數和資料型別、基本運算符、輸入和輸出,並深入探討條件判斷、迴圈和函式等核心主題。此外,你將學習列表、字典和文件操作等常用資料結構,並瞭解物件導向程式設計的概念和遞迴演算法的基礎。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
在 Python 中,List、Set、Tuple 和 Dictionary 都是常用的資料結構,它們各自具有不同的特性和用途,在本篇學習筆記中,我們將比較這四種資料結構,介紹它們的特點、用法以及適用的場景,幫助你更好地理解它們的差異和選擇適當的資料結構。
你一定有玩過猜拳遊戲,但你知道怎麼用Python寫一個猜拳遊戲嗎?今天我要分享一個簡單又好玩的程式碼,讓你可以和電腦對戰! 首先,我們要導入random模組,這個模組可以讓我們隨機生成一個數字,代表電腦出的拳。 然後,我們要用input函數讓使用者輸入自己出的拳,0代表剪刀,1代表石頭,2代表
大家好,歡迎來到我的Python學習筆記系列,今天我要跟大家介紹一種資料結構,叫做tuple,tuple是一種不可變的序列,也就是說,一旦建立了tuple,就不能對它的元素進行增加、刪除或修改。 tuple的優點是它佔用的記憶體空間比較小,而且可以作為字典的鍵或集合的元素。tuple的缺點是它
在 Python 中,集合(Set)是一種重要的資料結構,它提供了一個無序、不可重複元素的集合容器。Set 具有強大的數學運算功能,並且在處理需要去除重複元素或進行成員檢查的情況下非常有用。
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
在 Python 中,List、Set、Tuple 和 Dictionary 都是常用的資料結構,它們各自具有不同的特性和用途,在本篇學習筆記中,我們將比較這四種資料結構,介紹它們的特點、用法以及適用的場景,幫助你更好地理解它們的差異和選擇適當的資料結構。
你一定有玩過猜拳遊戲,但你知道怎麼用Python寫一個猜拳遊戲嗎?今天我要分享一個簡單又好玩的程式碼,讓你可以和電腦對戰! 首先,我們要導入random模組,這個模組可以讓我們隨機生成一個數字,代表電腦出的拳。 然後,我們要用input函數讓使用者輸入自己出的拳,0代表剪刀,1代表石頭,2代表
大家好,歡迎來到我的Python學習筆記系列,今天我要跟大家介紹一種資料結構,叫做tuple,tuple是一種不可變的序列,也就是說,一旦建立了tuple,就不能對它的元素進行增加、刪除或修改。 tuple的優點是它佔用的記憶體空間比較小,而且可以作為字典的鍵或集合的元素。tuple的缺點是它
在 Python 中,集合(Set)是一種重要的資料結構,它提供了一個無序、不可重複元素的集合容器。Set 具有強大的數學運算功能,並且在處理需要去除重複元素或進行成員檢查的情況下非常有用。
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
賓果的遊戲描述 在一個5x5的方陣上隨機填充1~25的數字。 玩家(使用者) 和 電腦(AI)輪流叫一個號碼,最先占據一整條直線連線的獲勝。 就像小時候玩的bingo 賓果連線遊戲一樣! (可以是占據兩條對角線,可以是占據水平直線,可以是占據垂直直線)
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
分享一個猜數字的遊戲題目,給予提示讓玩家找出正確的四位數密碼。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
題目敘述 題目會給定一個猜數字的場景和介面 (包含一個可以呼叫,驗證是否為答案的API guess() function), 要求我們實現猜數字的function guessNumber(int n)。 題目已經事先設定好一個祕密數字,要求我們去找出來那個祕密數字是多少。 就好像小時候
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
賓果的遊戲描述 在一個5x5的方陣上隨機填充1~25的數字。 玩家(使用者) 和 電腦(AI)輪流叫一個號碼,最先占據一整條直線連線的獲勝。 就像小時候玩的bingo 賓果連線遊戲一樣! (可以是占據兩條對角線,可以是占據水平直線,可以是占據垂直直線)
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
分享一個猜數字的遊戲題目,給予提示讓玩家找出正確的四位數密碼。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
題目敘述 題目會給定一個猜數字的場景和介面 (包含一個可以呼叫,驗證是否為答案的API guess() function), 要求我們實現猜數字的function guessNumber(int n)。 題目已經事先設定好一個祕密數字,要求我們去找出來那個祕密數字是多少。 就好像小時候
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術