3、编写GUI界面,模拟抢红包游戏,在界面输入红包大小和抢红包人姓名(用逗号隔开),输出系统当前时间以及每个人抢的红包大小,要求每个人抢的红包最少不能少于0.01元,精确到小数点后两位。
时间: 2024-03-31 18:35:09 浏览: 38
好的,这个问题需要用到Python的GUI库和时间模块,我可以给你提供一个简单的解决方案。需要安装的库有:tkinter、time。以下是代码实现:
```python
import tkinter as tk
import time
# 创建窗口
root = tk.Tk()
root.title("抢红包游戏")
# 添加标签和输入框
tk.Label(root, text="红包大小:").grid(row=0, column=0)
red_packet = tk.Entry(root)
red_packet.grid(row=0, column=1)
tk.Label(root, text="抢红包人:").grid(row=1, column=0)
grabbers = tk.Entry(root)
grabbers.grid(row=1, column=1)
# 定义点击按钮后的事件
def click():
# 获取红包大小和抢红包人
rp = float(red_packet.get())
g = grabbers.get()
grabbers_list = g.split(",")
# 计算每人抢到的红包金额
total = 0
for i in range(len(grabbers_list)):
if i == len(grabbers_list)-1:
grabbers_rp = round(rp-total, 2)
else:
grabbers_rp = round(rp/len(grabbers_list), 2)
total += grabbers_rp
if grabbers_rp < 0.01:
grabbers_rp = 0.01
grabbers_list[i] = (grabbers_list[i], grabbers_rp)
# 输出结果
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
for grabber in grabbers_list:
print(grabber[0], "抢到了", grabber[1], "元")
# 添加按钮
button = tk.Button(root, text="开始抢红包", command=click)
button.grid(row=2, column=1)
root.mainloop()
```
通过运行这个代码,你可以在GUI界面中输入红包大小和抢红包人,点击“开始抢红包”按钮后,程序会输出当前时间和每个人抢到的红包金额。
需要注意的是,程序中限制了每个人抢到的红包金额最少为0.01元,如果计算出来的金额小于这个数,程序会自动将其改为0.01元。