Florr.io合卡模拟

      

        由于在florr里疯狂炸卡(炸了600+m),本蒟蒻气得不行,又只会一点python的tkinter,便想在python里解恨,也就用了亿点点时间做了个极低配版,不美观,能用就行:

from tkinter import *
from tkinter import messagebox
import random

petal_level = ["Common", "Unusual", "Rare", "Epic","Legendary", "Mythic", "Ultra", "Super"]
petal_counts = [0] * len(petal_level)
probability_thresholds = [6400, 3200, 1600, 800, 400, 200, 100]

def update_labels():
    for i in range(len(petal_level)):
        label_list[i].config(text="{}: {}".format(petal_level[i], petal_counts[i]))

def start_synthesis():
    try:
        grade = grade_var.get()
        count = int(count_var.get())
        if grade in petal_level:
            index = petal_level.index(grade)
            petal_counts[index] += count
            update_labels()
        else:
            messagebox.showerror("错误", "拼写错误")
    except ValueError:
        messagebox.showerror("错误", "数字错误")

def synthesize_grade(index):
    if petal_counts[index] < 5:
        messagebox.showwarning("注意", "花瓣不够")
        return
    while petal_counts[index] >= 5:
        x = random.randint(1, 10000)
        if 0 < x < probability_thresholds[index]:
            petal_counts[index + 1] += 1
            petal_counts[index] -= 5
        else:
            petal_counts[index] -= random.randint(1, 4)
    update_labels()

def Return_to_zero():
    global petal_counts
    petal_counts = [0] * len(petal_level)
    update_labels()

root = Tk()
root.title("florr.io 合卡模拟")
root.geometry("1200x250")

grade_var = StringVar(root)
count_var = StringVar(root)

input_frame = Frame(root)
input_frame.grid(row=0, column=0, padx=20, pady=20)

Label(input_frame, text="等级:").grid(row=0, column=0, sticky="e")
Entry(input_frame, textvariable=grade_var).grid(row=0, column=1, sticky="ew")

Label(input_frame, text="数量:").grid(row=0, column=2, sticky="e")
Entry(input_frame, textvariable=count_var).grid(row=0, column=3, sticky="ew")

Button(input_frame, text="OK", command=start_synthesis).grid(row=0, column=4)

label_frame = Frame(root)
label_frame.grid(row=1, column=0, padx=20, pady=20, columnspan=5)

label_list = []
for i, grade in enumerate(petal_level):
    label = Label(label_frame, text=f"{grade}: {petal_counts[i]}")
    label.grid(row=0, column=i, padx=20, pady=2, sticky="ew")
    label_list.append(label)

button_frame = Frame(root)
button_frame.grid(row=2, column=0, padx=20, pady=20, columnspan=5)

buttons = []
for i in range(len(petal_level) - 1):
    button = Button(button_frame, text=f"{petal_level[i]} -> {petal_level[i+1]}", command=lambda i=i: synthesize_grade(i))
    button.grid(row=0, column=i, padx=20, pady=2, sticky="ew")
    buttons.append(button)

rbutton = Button(root, text="重置", command=Return_to_zero)
rbutton.grid(row=2, column=5, padx=20, pady=2)

root.mainloop()

什么?你说大数字会TLE?管他的,反正你也攒不了那么多(bushi),或者有大佬帮忙优化下也行,谢谢(可转载,二创)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值