在前三篇文章中,我們透過 Swift
建構了球員、守備、與打擊的邏輯模型。
接下來,就進入賽前準備階段!本篇將模擬一場完整棒球賽的 開賽前準備流程,透過建構賽事資訊,來模擬實際的開賽前流程。
筆者現在算半個獅迷,所以挑了一場 2025/5/17 統一獅 vs 台鋼雄鷹的例行賽。
定義比賽資訊 MatchInfo
首先,我們把一場例行賽相關的資訊,包含編號、主客隊、比賽日期、場地、天氣、裁判團隊,以 struct
包裝成一個 MatchInfo
:
實際球員名單(2025/5/17)
我們選用了 2025/5/17 統一獅 vs 台鋼雄鷹的例行賽,來實際建構球員名單:
好不容易,我們終於把球員名單建構好了!
這邊我們只把這場比賽有上場的球員列出來,實際當天還有沒上場的球員們,我們就先跳過囉。
比賽初始化 matchInfo
接下來,我們把前面準備好的球隊先發名單,以及比賽日期、場地、天氣、裁判團隊等資訊,整合成一個 matchInfo
。
透過 matchInfo
,我們可以快速地了解這場比賽的基本資訊,以及兩隊的先發名單。
這樣簡易且直觀的做法,加快我們進入比賽的節奏。我們也透過 CustomStringConvertible
協定,給予了 description
屬性,模仿賽事主播的口氣,讓 matchInfo
可以像這樣輸出:
2025-05-17 在 澄清湖棒球場 舉行例行賽編號第 103 場, 由 台鋼雄鷹 對戰 統一 7-ELEVEn 獅, 今天的天氣是 陰天, 裁判由 主審: 王俊宏, 一壘審: 陳均瑋, 二壘審: 劉世偉, 三壘審: 曾鈞威 四位老師擔任。
而既然比賽已經準備就緒了,下一篇,讓我們正式從第一局上半開始,用 Swift
來模擬實際的 play-by-play 流程!
如果覺得這篇文章對你有幫助,也歡迎分享給更多人知道,或者還有想了解的 `Swift` 技巧,也歡迎留言告訴我!
本篇文章程式碼部分由 `AI` 輔助產生。