猜数字 ( 几 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} 秒') # 印出對應的文字
微信扫码关注
抖音扫码关注