前言
今天想跟大家分享一個用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("感謝您的遊玩!")
整理
- import random: 導入Python的random模組,用於生成隨機數。
- def generate_number(): 定義了一個函數generate_number(),用於生成一個四位數字的答案,該函數使用random.randint()生成隨機數字,並確保每個位數都不重複,最後,它將生成的數字轉換為字串形式並返回。
- print("歡迎來到1A2B遊戲!")和print("請猜一個四位數字,其中每個位數都不重複。"):歡迎信息和遊戲說明,向使用者介紹遊戲規則。
- answer = generate_number(): 呼叫generate_number()函數生成一個四位數字的答案,並將它存儲在變數answer中。
- win = False: 創建一個布林值win,用於標記是否贏得遊戲。
- while not win:: 進入一個無限循環,直到win為True(表示贏得遊戲)時才結束。
- guess = input("請輸入您的猜測:"): 提示使用者輸入他們的猜測,並將輸入存儲在變數guess中。
- if len(guess) != 4 or len(set(guess)) != 4:: 檢查使用者輸入的猜測是否為四位數字且每個位數都不重複,如果條件不滿足,打印無效輸入的錯誤信息並繼續下一輪循環。
- A = 0和B = 0: 創建兩個變量A和B,分別用於記錄猜測中數字位置正確(A)和數字正確但位置不正確(B)的個數。
- 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:: 如果A的值為4,表示所有位數都正確,則猜測正確,贏得遊戲,打印贏得遊戲的信息並將win設置為True,從而跳出無限迴圈。
- else:: 如果猜測不正確,打印再試一次的提示信息。
- print("感謝您的遊玩!"): 打印遊戲結束的感謝信息。
感謝您閱讀本篇文章!我們很高興您能從中獲得一些有用的資訊。如果您喜歡這篇文章,請不要吝嗇您的支持,您可以:
- 按下愛心:這樣我們就知道您對這篇文章的喜愛程度,也可以讓更多人看到它。
- 分享文章:如果您認為這篇文章也能幫助其他人,請把它分享出去。
- 追蹤我們:如果您想持續收到更多類似的內容,請點擊追蹤按鈕。
- 支持我們:如果您願意,您也可以成為我們的贊助者。