Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import random | |
| # 初始化全域變數 | |
| drawn_numbers = [] | |
| draw_count = {} | |
| # 抽籤邏輯 | |
| def draw_number(max_number, allow_duplicates): | |
| global drawn_numbers, draw_count | |
| if allow_duplicates or len(drawn_numbers) < max_number: | |
| while True: | |
| number = random.randint(1, max_number) | |
| if allow_duplicates or number not in drawn_numbers: | |
| break | |
| # 記錄抽中的號碼和次數 | |
| if number in draw_count: | |
| draw_count[number] += 1 | |
| else: | |
| draw_count[number] = 1 | |
| if not allow_duplicates: | |
| drawn_numbers.append(number) | |
| return f"抽到的號碼是: {number}\n目前號碼被抽中的次數: {draw_count}" | |
| else: | |
| return "所有號碼都已經被抽完!" | |
| # 重置系統 | |
| def reset(): | |
| global drawn_numbers, draw_count | |
| drawn_numbers = [] | |
| draw_count = {} | |
| return "系統已重置!" | |
| # 介面設計 | |
| with gr.Blocks() as demo: | |
| max_number_input = gr.Number(label="輸入班級座號的最大值", value=30, precision=0) | |
| allow_duplicates_checkbox = gr.Checkbox(label="允許重複抽籤", value=True) | |
| output = gr.Textbox(label="結果") | |
| draw_button = gr.Button("抽籤") | |
| reset_button = gr.Button("重置系統") | |
| draw_button.click(draw_number, inputs=[max_number_input, allow_duplicates_checkbox], outputs=output) | |
| reset_button.click(reset, outputs=output) | |
| # 運行應用程式 | |
| demo.launch() | |