cwadayi commited on
Commit
9aac8d8
·
verified ·
1 Parent(s): ee99b8d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +85 -0
app.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ # --- 1. 內容資料庫 ---
4
+ # 將增進羽球實力的知識結構化
5
+ knowledge_base = {
6
+ "基本功: 握拍 (Grip)": "**訓練建議:**\n1. **鏡子練習:** 對著鏡子練習正、反手握拍的轉換,確保動作標準。\n2. **無球揮拍:** 每天進行至少50次的正、反手揮拍轉換練習,直到形成肌肉記憶。\n3. **放鬆原則:** 確保在非擊球狀態時,手指是放鬆的,只在擊球瞬間才發力握緊。",
7
+ "基本功: 步法 (Footwork)": "**訓練建議:**\n1. **米字步訓練:** 以場地中心為原點,向八個方向進行步法移動練習,這是羽球步法的核心。\n2. **跳繩:** 每天跳繩10-15分鐘,可以極大地提升腳踝力量和腳步的輕盈度。\n3. **啟動步練習:** 模仿對手擊球的瞬間,練習一個小墊步(split-step),這能讓你更快地向任何方向啟動。",
8
+ "技術: 高遠球 (Clear)": "**訓練建議:**\n1. **高點擊球:** 找一個夥伴對練,專注於在你的最高擊球點將球擊出,確保球的飛行弧線夠高夠遠,能壓到對手底線。\n2. **完整揮拍:** 確保你的揮拍動作是完整的「引拍 -> 擊球 -> 隨揮」,利用身體轉動的力量,而非單純的手臂力量。",
9
+ "技術: 殺球 (Smash)": "**訓練建議:**\n1. **定點殺球:** 讓夥伴從前場餵球給你,你專注於在後場同一個位置進行殺球練習,追求力量和準確度。\n2. **核心力量訓練:** 平板支撐(Plank)、仰臥起坐等核心訓練,能顯著提升你的殺球力量和身體穩定性。\n3. **手腕發力:** 在擊球的瞬間,要有手腕向前「甩鞭」的動作,這是殺球力量的關鍵來源。",
10
+ "技術: 網前球 (Net Play)": "**訓練建議:**\n1. **對牆搓球:** 距離牆壁約1-1.5公尺,練習輕柔地將球搓向牆壁,感受手指對力量和旋轉的細微控制。\n2. **網前對練:** 和夥伴在網前進行多拍的搓、勾、放練習,目標是比誰的球更貼網、質量更高。",
11
+ "戰術: 拉吊結合 (Clear & Drop)": "**訓練建議:**\n1. **一高一吊練習:** 和夥伴進行對練,你打一拍高遠球到他後場,他回高遠球給你,你接著打一拍吊球到他前場,如此循環。\n2. **觀察對手重心:** 在打出高遠球後,立刻觀察對手的回位速度和重心。如果他回位慢,下一拍果斷吊網前。",
12
+ "體能: 敏捷性與爆發力 (Agility & Explosiveness)": "**訓練建議:**\n1. **四角折返跑:** 在半場的四個角落放置羽球筒,進行快速的折返跑觸碰練習,這能模擬場上的快速移動。\n2. **蛙跳/深蹲跳:** 每週進行2-3組的蛙跳或深蹲跳練習,能有效提升腿部爆發力。",
13
+ "心態: 抗壓性 (Resilience)": "**訓練建議:**\n1. **模擬壓力局:** 在練習賽中,刻意設定一個落後的比分開始,例如從15:20開始打,訓練自己在壓力下追分的能力。\n2. **呼吸練習:** 在分數間的短暫休息時,進行深呼吸,幫助自己冷靜下來,重新專注於下一分。"
14
+ }
15
+
16
+ # --- 2. Gradio 介面函式 ---
17
+ def get_training_advice(skill_area):
18
+ """根據選擇的技能領域返回建議"""
19
+ return knowledge_base.get(skill_area, "請從下拉選單中選擇一個項目。")
20
+
21
+ # --- 3. 建立 Gradio Blocks 介面 ---
22
+ with gr.Blocks(theme=gr.themes.Soft(), title="羽球實力增進指南") as demo:
23
+ gr.Markdown(
24
+ """
25
+ # 🏸 羽球實力增進互動指南
26
+ 這是一個幫助你全面提升羽球實力的互動教學。
27
+ 下方不僅有系統性的知識講解,還有一個**互動式訓練建議產生器**,試試看吧!
28
+ """
29
+ )
30
+
31
+ with gr.Accordion("點擊展開:增進羽球實力的五大核心面向", open=False):
32
+ gr.Markdown(
33
+ """
34
+ ### 1. 基本功 (Fundamentals)
35
+ * **握拍 (Grip)**:學習並熟練正手和反手握拍法,並在兩者之間快速、自然地切換。
36
+ * **發球 (Serving)**:精通高遠球和短球,從一開始就掌握主動權。
37
+ * **步法 (Footwork)**:有效率的步法(如:啟動步、交叉步、併步)能讓你以最快速度到達擊球點。
38
+
39
+ ### 2. 技術 (Techniques)
40
+ * **高遠球 (Clear)**:將球打到對手後場底線,爭取時間。
41
+ * **殺球 (Smash)**:最具攻擊性的擊球。
42
+ * **切球/吊球 (Drop Shot)**:輕輕地將球打過網,落在對手的前場。
43
+ * **網前球 (Net Play)**:在網前進行的細膩技術,如搓球、勾對角。
44
+ * **平抽擋 (Drive)**:快速、平直地回擊。
45
+
46
+ ### 3. 戰術 (Tactics)
47
+ * **拉吊結合 (Clear & Drop Combination)**:調動對手前後跑動。
48
+ * **殺上網 (Smash & Rush to the Net)**:後場攻擊後迅速跟進上網。
49
+ * **控制四個點 (Controlling the Four Corners)**:最大限度地調動對手。
50
+ * **觀察對手 (Observe Your Opponent)**:針對性地攻擊對手弱點。
51
+
52
+ ### 4. 體能 (Physical Fitness)
53
+ * **肌力 (Strength)**:核心、腿部和手腕的力量。
54
+ * **耐力 (Stamina)**:確保你能打滿三局。
55
+ * **敏捷性與爆發力 (Agility & Explosiveness)**:快速啟動和變向的能力。
56
+ * **柔韌性 (Flexibility)**:擴大防守範圍,減少運動傷害。
57
+
58
+ ### 5. 心態 (Mentality)
59
+ * **專注力 (Concentration)**:專注於每一分。
60
+ * **抗壓性 (Resilience)**:落後時也能保持冷靜。
61
+ * **自信心 (Confidence)**:相信自己的訓練和能力。
62
+ """
63
+ )
64
+
65
+ gr.Markdown("---")
66
+ gr.Markdown("## 互動式訓練建議產生器")
67
+ gr.Markdown("從下面的選單中選擇你最想加強的項目,我會給你具體的訓練建議!")
68
+
69
+ skill_dropdown = gr.Dropdown(
70
+ choices=list(knowledge_base.keys()),
71
+ label="我想加強我的...",
72
+ value="基本功: 步法 (Footwork)" # 預設值
73
+ )
74
+
75
+ advice_output = gr.Markdown(label="你的專屬訓練建議")
76
+
77
+ skill_dropdown.change(fn=get_training_advice, inputs=skill_dropdown, outputs=advice_output)
78
+
79
+ # 頁面載入時觸發一次,顯示預設值的建議
80
+ demo.load(fn=get_training_advice, inputs=skill_dropdown, outputs=advice_output)
81
+
82
+
83
+ # --- 4. 啟動應用 ---
84
+ if __name__ == "__main__":
85
+ demo.launch()