File size: 1,315 Bytes
3146495
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import gradio as gr
import random

# 定義座位排法邏輯
def arrange_seating(input_data):
    # 將輸入的班級座號與姓名轉換為列表
    students = [line.strip() for line in input_data.strip().split('\n') if line.strip()]
    
    # 檢查學生數量
    total_seats = 32
    empty_seats = total_seats - len(students)
    
    # 如果學生數量少於32,補充空位
    if empty_seats > 0:
        students.extend(['空位'] * empty_seats)

    # 隨機打亂學生列表
    random.shuffle(students)
    
    # 排座位 4 排,每排 8 個座位
    seating_arrangement = []
    for i in range(4):
        row = students[i*8:(i+1)*8]
        seating_arrangement.append(row)
    
    # 將結果轉換成表格顯示
    seating_table = "\n".join(["\t".join(row) for row in seating_arrangement])
    
    return seating_table

# 使用 Gradio 構建介面
with gr.Blocks() as demo:
    gr.Markdown("## 座位排法系統")

    input_text = gr.Textbox(lines=10, label="請輸入班級座號與姓名(每行一個)", placeholder="1 張三\n2 李四\n3 王五")
    arrange_button = gr.Button("排座位")
    result = gr.Textbox(label="座位安排結果", lines=10)
    
    arrange_button.click(arrange_seating, inputs=input_text, outputs=result)

# 啟動 Gradio 應用
demo.launch()