抢红包游戏

抢红包游戏:
给定红包的总金额和红包发放数量,模拟抢红包游戏,主要使用到的库是随机数random标准库。

第一种:

import random
#total表示拟发红包总金额,num表示拟发红包数量,Already已发红包初始化为0
total = int(float(input("请输入总金额: "))*1)
num = int(input("请输入发放个数: "))
already = 0
for i in range(num-1):
    mny = random.randint(1,total - already - num +i)
    #已发红包累计金额
    already += mny
    print(mny,end='\t')
#剩余所有金额发给最后一个人
print(total - already)

运行结果:
在这里插入图片描述

第二种:

import random
total =int(float(input("the total of your red packet: "))*1)
num = int(input("how many people get your red packet: "))
s = num
already = 0
for i in range(num-1):
    nummoney =random.randint(1,int((total-already)/s*2))
    already += nummoney
    print(nummoney,end='\t')
    s -=1

print(total-already)

运行结果:

在这里插入图片描述
菜菜的代码,希望能够帮助到你哟!

好的,您的问题是编写一个 GUI 界面,模拟抢红包游戏,在界面输入红包大小和抢红包人姓名(用逗号隔开),输出系统当前时间以及每个人抢的红包大小,要求每个人抢的红包最少不能少于0.01元。以下是我给出的示例代码: ```python import tkinter as tk import time class RedPacketGame: def __init__(self, master): self.master = master master.title("抢红包游戏") self.red_packet_label = tk.Label(master, text="红包大小:") self.red_packet_label.grid(row=0, column=0) self.red_packet_entry = tk.Entry(master) self.red_packet_entry.grid(row=0, column=1) self.name_label = tk.Label(master, text="抢红包人姓名:") self.name_label.grid(row=1, column=0) self.name_entry = tk.Entry(master) self.name_entry.grid(row=1, column=1) self.submit_button = tk.Button(master, text="抢红包", command=self.submit) self.submit_button.grid(row=2, column=0) self.result_label = tk.Label(master, text="") self.result_label.grid(row=3, column=0, columnspan=2) def submit(self): red_packet = float(self.red_packet_entry.get()) names = self.name_entry.get().split(",") num_people = len(names) min_amount = 0.01 if red_packet < num_people * min_amount: self.result_label.config(text="红包太少啦,每个人至少能分到0.01元哦!") return amounts = [] for i in range(num_people-1): amount = round(red_packet / (num_people-i) * 2 * random.random(), 2) amounts.append(amount) red_packet -= amount amounts.append(round(red_packet, 2)) results = [f"{name} 抢到 {amount} 元" for name, amount in zip(names, amounts)] self.result_label.config(text=f"系统当前时间:{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())}\n{'\n'.join(results)}") root = tk.Tk() game = RedPacketGame(root) root.mainloop() ``` 运行代码后,会出现一个简单的 GUI 界面,里面有两个输入框和一个按钮。在红包大小的输入框中输入红包大小,在抢红包人姓名的输入框中输入抢红包人姓名(多个人姓名之间用逗号隔开),然后点击“抢红包”按钮,程序会自动计算每个人抢到的红包金额,并在界面上显示系统当前时间和每个人抢到的红包金额。如果红包太少,无法保证每个人抢到的金额不少于0.01元,则会在界面上提示红包太少的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜是真菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值