猜數字 ( 幾 A 幾 B )
這篇文章會介紹使用 Python 的隨機整數、while 迴圈、for 迴圈、input 指令和 if 判斷式,做出一個猜幾 A 幾 B 的猜數字遊戲。
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
基本原理
要進行幾 A 幾 B 的猜數字遊戲,需要先使用 range 和 random.sample,產生一個「四個不重複的隨機數字」答案。
import random
answer = random.sample(range(1, 10), 4)
print(answer)
接著按照下圖的判斷規則編輯程式,當中會使用 while 迴圈、for 迴圈、if 判斷式、join() 合併...等方法:
import random
answer = random.sample(range(1, 10), 4)
print(answer)
a = b = n = 0 # 設定 a、b、n 三個變數,預設值 0
while a!=4: # 使用 while 迴圈,直到 a 等於 4 才停止
a = b = n = 0 # 每次重複時將 a、b、n 三個變數再次設定為 0
user = list(input('輸入四個數字:')) # 讓使用者輸入數字,並透過 list 轉換成串列
for i in user: # 使用 for 迴圈,將使用者輸入的數字一一取出
if int(user[n]) == answer[n]: # 因為使用者輸入的是「字串」,透過 int 轉換成數字,和答案串列互相比較
a += 1 # 如果位置和內容都相同,就將 a 增加 1
else:
if int(i) in answer: # 如果位置不同,但答案裡有包含使用者輸入的數字
b += 1 # 就將 b 增加 1
n += 1 # 因為輸入的每個數字都要判斷,將 n 增加 1
output = ','.join(user).replace(',','') # 四個數字都判斷後,使用 join 將串列合併成字串
print(f'{output}: {a}A{b}B')
print('答對了!')
加入遊戲次數
如果要讓遊戲更完整,可以加入「計算次數」和「計時」的機制 ( 計時的機制使用 time.time() 搭配 round 四捨五入 )。
import random
import time # import time 模組
answer = random.sample(range(1, 10), 4)
print(answer)
a = b = n = 0
num = 0 # 新增 num 變數為 0,作為計算次數使用
t = time.time() # 新增 t 變數為現在的時間
while a!=4:
num += 1 # 每次重複時將 num 增加 1
a = b = n = 0
user = list(input('輸入四個數字:'))
for i in user:
if int(user[n]) == answer[n]:
a += 1
else:
if int(i) in answer:
b += 1
n += 1
output = ','.join(user).replace(',','')
print(f'{output}: {a}A{b}B')
t = round((time.time() - t), 3) # 當 a 等於 4 時,計算結束和開始的時間差
print(f'答對了!總共猜了 {num} 次,用了 {t} 秒') # 印出對應的文字
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~