猜数游戏是一种古老的的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。
在这里,我们使用 Python 随机生成 0 到 10 之间的一个随机整数,程序会根据猜的数字提示是大了还是小了,最终猜出正确的数字。
猜数游戏设有猜测次数的上限,超过限制次数,任务失败。
import random
num = random.randint(0, 10)
attempt = 5
while attempt > 0:
user_input = int(input('系统生成 0 ~ 10 之间的整数。请猜数:'))
if user_input > num:
msg = '猜大了!'
print(msg)
attempt -= 1
print(f'你还有 {attempt} 次机会!')
elif user_input < num:
msg = '猜小了!'
print(msg)
attempt -= 1
print(f'你还有 {attempt} 次机会!')
else:
msg = '猜对了!'
print(msg)
break
代码执行演示:
系统生成 0 ~ 10 之间的整数。请猜数:5
猜小了!
你还有 4 次机会!
系统生成 0 ~ 10 之间的整数。请猜数:7
猜大了!
你还有 3 次机会!
系统生成 0 ~ 10 之间的整数。请猜数:6
猜对了!
猜数游戏 GUI 版
from tkinter import *
import random
ws = Tk()
ws.title('猜数游戏')
ws.geometry('600x300')
ws.config(bg='#5671A6')
ranNum = random.randint(0, 10)
chance = 5
var = IntVar()
disp = StringVar()
def check_guess():
global ranNum
global chance
usr_ip = var.get()
if chance > 0:
if usr_ip == ranNum:
msg = f'你赢了! {ranNum} 是正确答案。'
elif usr_ip > ranNum:
chance -= 1
msg = f'{usr_ip} 猜大了,你还有 {chance} 次机会。'
elif usr_ip < ranNum:
chance -= 1
msg = f'{usr_ip} 猜小了,你还有 {chance} 次机会。'
else:
msg = '未知错误。'
else:
msg = f'你失败了,你还有 {chance} 次机会。'
disp.set(msg)
Label(
ws,
text='系统生成 0~10 之间的整数。请猜数!',
font=('sans-serif', 20),
relief=SOLID,
padx=10,
pady=10,
bg='#F27D16'
).pack(pady=(10, 0))
Entry(
ws,
textvariable=var,
font=('sans-serif', 18)
).pack(pady=(50, 10))
Button(
ws,
text='提交',
font=('sans-serif', 18),
command=check_guess
).pack()
Label(
ws,
textvariable=disp,
bg='#5671A6',
font=('sans-serif', 14)
).pack(pady=(20,0))
ws.mainloop()