本館粉絲專頁

使用者:Digipunk/XXT

分享此網頁到Facebook
分享此網頁到Plurk
分享此網頁到百度搜藏
分享此網頁到Twitter
分享此網頁到Del.icio.us
最近作者:Digipunk 2018年5月27日 (星期日)09:34
台灣棒球維基館
跳轉到: 導覽搜尋

目次

[編輯] 命名

[編輯] XXT

這類模板名稱只要簡短、有意義即可,不要落落長,也不要毫無意義的名稱。
XXT 勉強符合要求,夠簡短,意義方面可聯想為「線形圖」漢語拼音的字首(Xian-Xing-Tu)。

[編輯] TOPn

設計此系列模板時,原本使用正式英文縮寫做為名稱,例如:
  • EF = Eighth Finals,十六強。
  • QF = Quarter Finals,八強(半準決賽,準々決賽)。
  • SF = Semi Finals,四強(準決賽)。
  • FF = Final,二強(決賽)。
瞬間又覺得這些名稱不夠直覺,我自己寫到一半都可能搞混,不如來個「台式邏輯」,改成現在的 TOPn 形式,直覺多了:
  • TOP16:十六強。
  • TOP8:八強。
  • TOP4:四強。
  • TOP2:二強。

[編輯] 模板總覽

模板名稱 適用隊數 適用賽事 八強晉級線段顏色 八強晉級隊名樣式 國名縮寫 來源標示 備 註
{{XXT/TOP64}} 31~64 學生球隊 可設定 可設定 不支援 不支援 參賽隊數多,隊名宜控制在四字或以內。
{{XXT/TOP32}} 17~32 學生球隊
{{XXT/TOP16}} 14~16 任何賽事 僅冠軍隊 僅冠軍隊 支援 支援
{{XXT/TOP13}} 9~13 任何賽事 彈性高,但需額外設定三組比賽的晉級方向。
{{XXT/TOP8}} 5~8 任何賽事
{{XXT/TOP4}} 3~4 任何賽事
{{XXT/TOP2}} 2 實用性太低,不提供前端介面,純後端運作。
{{XXT/TOP1}} 1 ditto
{{XXT}} 線形圖外框

[編輯] 賽程表與線形圖

[編輯] 先天差異

  • 賽程表以時間及組別為基礎,依序提供各場次的開賽時間與結果,符合人類所習慣的時間概念。
  • 線形圖以視覺方式提供對戰關係及晉級路線,可能某種程度上喪失時間感,而那只是一種取捨;賽程表要追蹤各隊的晉級路線比較麻煩,線形圖則一目了然。

[編輯] 從賽程表到線形圖

  • 填寫賽程表時,自然是依時間陸續填入資料;填寫線形圖時,也同樣依據已賽場次逐步填入資料。
  • 然而,欲根據賽程表建立線形圖,確保不出錯的方式是把順序反過來:
  1. 選擇並使用適當的 XXT/TOPn 模板。
  2. 先看賽程表中最後一場比賽,將場次資訊填入線形圖。
  3. 再看賽程表中最後一場比賽的兩隊各來自哪兩場比賽,將那兩場比賽的場次資訊填入線形圖。
  4. 重複上述兩步驟。
  • 簡單說,從無到有建立線形圖,必須是樹狀結構由上而下(或說由後往前)的方向產生,如此始能確保所有場次的連結關係不出錯。(相對的,如果從賽程第一輪開始填入,則陸續晉級後,可能發生勝隊沒有正確交會在一起的窘況)

[編輯] 賽程表與線形圖的連結

  • 雖然賽程表與線形圖各自獨立,但兩者之間有一個很重要的連結:場次編號。
  • 場次編號如何應用在填寫線形圖,方法見底下的「場次代稱」段落。

[編輯] 架構

  • 依隊數之不同而分成不同階層的模板,這些層級並非獨立運作,而是將資料一層層傳遞,每一層都是前一層的 VPL,整理參數並繼續傳遞給下一層。

[編輯] TOPn 需要做的事

TOP4 為例:
  • 處理 TOP4 相關參數。由於 TOP4 是前端介面,這些參數可能來自直接指定;TOP4 同時是 TOP8VPL,故參數也可能從 TOP8 傳遞而來。
  • 計算晉級 TOP2 的隊名,根據目前 TOP4 各隊比數。
  • 檢查目前 TOP4 各隊比數是否有 -2 者(不顯示),若有的話,把它的前一輪(TOP8)兩隊也都設為 -2

[編輯] 隊名表示法之進階探討

此系列線形圖以「場次」為單位,以 TOPn-Mx- 表示「n 強階段,第 x 場」比賽。
  • 兩隊名稱:TOPn-Mx-TEAMS  = team1/team2
  • 兩隊得分:TOPn-Mx-SCORES = score1/score2
  • 場次資訊:TOPn-Mx-INFO   = game/field/time
使用的格式都是合併寫法(以 "/" 分隔)。其中,兩隊得分與場次資訊沒有什麼問題,前者只是單純數字,後者可以控制不在文字裡出現 "/",但是隊名的問題就大了。
為了擁有合併寫法的簡潔便利,此系列模板以國家代碼形式接受隊名,將自動呼叫 {{TeamX}} 顯示成小國旗與中文隊名。
| TOP8-M2-TEAMS  = ROC / KOR
| TOP8-M2-SCORES = 18 / 0
| TOP8-M2-INFO   = Game 2 / 台中洲際 / 2016-07-25 17:30

[編輯] 技術觀點

  • 模板在接受這種合併寫法時,必須利用 "/" 將字串切開,然而此功能的原始目的是進行路徑解析,也就是說,特殊符號不應該出現在 "/" 的兩邊,包括中括號、大括號等等,這意味著我們不能直接在隊名中使用其它模板(如 {{TeamX}} ),否則將造成解析失敗,無法判斷 "/" 兩邊的子字串。
  • 即使這種表示法只能以代碼表示球隊,但已滿足絕大部份國際賽所需。

[編輯] 替代寫法

某些時候,上述輸入法不適用,例如:
  • 全壘打大賽,參賽者為個人,若我們想在人名前面加上球隊 logo,上述輸入法就不適用了,因為球隊 logo 並沒有對應的國家代碼。
  • 基於某些因素,在一場賽事裡有國家用兩個以上的分隊參賽,則上述表示法也不適用。例如日本以三個分隊參賽,而上述表示法只能以代碼 JPNJP 代入,顯示出來的中文隊名都是日本,無法辨別其分隊。(2008年第五屆亞洲青少棒錦標賽便有三個日本分隊)
任何情況下都可以用另一種形式「單獨指定」隊名(或人名),而且不受限於所使用的文字或符號,只要把 -TEAMS 拆成 -TEAM1-TEAM2 即可。以下三種寫法同義:
<!-- 寫法一:合併寫法,必須使用國名縮寫,將自動轉換成小國旗與國名 -->
| TOP8-M3-TEAMS = USA / MEX
<!-- 寫法二:單獨指定,若為國名縮寫,則自動轉換成小國旗與國名 -->
| TOP8-M3-TEAM1 = USA
| TOP8-M3-TEAM2 = MEX
<!-- 寫法三:單獨指定,若非國名縮寫,則直接輸出 -->
| TOP8-M3-TEAM1 = {{TeamX|USA|美國 }}
| TOP8-M3-TEAM2 = {{TeamX|MEX|墨西哥}}
這種單獨指定的形式,自然也可以套用在球員:
<!-- 2016年中職全壘打大賽,八強階段,第二場,陽耀勳 vs 高國輝 -->
| TOP8-M2-TEAM1 = {{Lamigo桃猿}} [[陽耀勳]]
| TOP8-M2-TEAM2 = {{義大犀牛}} [[高國輝]]
以及分隊的情況:
<!-- 2008 BFA U15,以隊名為例,並非實際賽程,該比賽不是單淘汰制 -->
| TOP8-M1-TEAM1 = {{TeamX|JPN|日本伊豆}}
| TOP8-M1-TEAM2 = {{TeamX|JPN|日本座間}}

[編輯] 優先權

個人認為單獨指定的項目,優先權應該高於合併寫法,於是做了下列設計。
假設使用此系列模板時做了下列設定(同時使用兩種寫法),則以單獨指定者為優先,無關乎書寫順序:
| TOP8-M3-TEAM2 = JPN
| TOP8-M3-TEAMS = USA / MEX
| TOP8-M3-TEAM1 = RUS
<!-- 該場次的兩隊將為:俄羅斯 vs 日本 -->

[編輯] 棄賽處理及賽程調整

這部份值得一提,此系列模板可利用「特殊值」處理某些狀況:
  • 發生球隊棄賽的狀況。例如,不小心遇到印度隊。
  • 參賽隊數不足。例如,欲使用八強圖,但晉級隊數僅有六隊,這種情況必須手動使其中兩個位置消失。

[編輯] 棄賽處理

  • 方法一:不需處理,直接填入最終判決的比數即可,如此一來,讓該晉級的球隊就自動晉級,該淘汰的自動淘汰。舉例而言,正規九局的比賽,其中一隊棄賽後,依規定通常判決為 9:0;同理,七局的比賽便是 7:0
  • 方法二:使用此系列模板的特殊值 -1。其意義同上,但會把棄賽球隊的背景塗成較暗的顏色,而且分數欄標示為「棄」。(對於晉級的另一隊,應參照上述方式,將其比分正確填為「比賽局數」)

[編輯] 範例

{{XXT/TOP4
  | TOP4-M1-TEAMS  = JPN / ZAF
  | TOP4-M2-TEAMS  = IND / NZL
  | TOP4-M1-SCORES = 2/11
  | TOP4-M2-SCORES = -1/9
  ...
}}
準 決 賽 決 賽 排 名
XJPN.png日本 
2

XZAF.png南非 
11
XZAF.png南非 
冠 軍

XIND.png印度 
-1
XNZL.png紐西蘭
亞 軍

XNZL.png紐西蘭
9 季 軍

殿 軍

[編輯] 賽程調整

  • 利用特殊值 -2 取消某個位置。
  • 此系列模板會盡可能處理該位置之後的狀態,但不到完美的程度。例如,當某個位置被取消後,它不該再出現在敗部(排名賽),萬一它出現了、模板沒有處理好,請自行再次手動把不該出現的位置設為 -2,讓它消失。
  • 此功能適用於球隊數量不足、有種子球隊的情況。實際上,許多時候可以將對戰的兩隊都取消掉,直接在下一輪填入種子球隊隊名,使用者應視情況調整。

[編輯] 範例

以下示範使 TOP4-M2-TEAM2 的位置消失,該位置的隊名可不填(反正不會顯示),分數欄填入 -2,而 TEAM1 自動晉級。
{{XXT/TOP4
  | TOP4-M1-TEAMS  = JPN / ZAF
  | TOP4-M2-TEAMS  = IND / NZL
  | TOP4-M1-SCORES = 8/-2
  | TOP4-M2-SCORES = 2/5
  ...
}}
準 決 賽 決 賽 排 名
XJPN.png日本 
8

XJPN.png日本 
冠 軍

XIND.png印度 
2
XNZL.png紐西蘭
亞 軍

XNZL.png紐西蘭
5 季 軍

殿 軍
在以上的賽程裡,更好的寫法是把兩隊都取消,直接把 JPN 填入下一輪:
{{XXT/TOP4
  | TOP4-M1-TEAMS  = JPN / ZAF
  | TOP4-M2-TEAMS  = IND / NZL
  | TOP4-M1-SCORES = -2/-2
  | TOP4-M2-SCORES = 2/5

  | TOP2-M1-TEAM1  = JPN
  ...
}}
準 決 賽 決 賽 排 名

XJPN.png日本 
冠 軍

XIND.png印度 
2
XNZL.png紐西蘭
亞 軍

XNZL.png紐西蘭
5 季 軍

殿 軍

[編輯] 晉級路線

  • TOP32TOP64 隊數眾多,為突顯前 n 球隊,可特別設定其晉級路線。所謂晉級路線分成:晉級線段顏色,以及晉級隊名樣式。
  • 另一方面,TOP16..4 則因隊數有限,目視即使分辨晉級者,無上述需求。(TOP16..4 僅可設定冠軍隊的晉級路線)

[編輯] 晉級線段顏色

  • 晉級路線顏色是指球隊晉級下一階段的連接線顏色,打進前八強的球隊可具備此特殊設定。
  • 下列參數的接受值為「顏色」,比如 red#0288C0 等顏色表示法。
  • TOP8-LINE:前八強的晉級線段顏色。
  • TOP4-LINE:前四強的晉級線段顏色。
  • TOP2-LINE:前二強的晉級線段顏色。(若有設定冠軍隊的線段顏色,此參數便成為亞軍球隊專屬的顏色)
  • TOP1-LINE:冠軍隊的晉級線段顏色。

[編輯] 晉級隊名樣式

  • 晉級隊名樣式是指球隊晉級在各階段的隊名樣式,打進前八強的球隊可具備此特殊設定。
  • 下列參數的接受值為「樣式」,即 CSS 樣式寫法。
  • TOP8-STYLE:前八強的隊名樣式。
  • TOP4-STYLE:前四強的隊名樣式。
  • TOP2-STYLE:前二強的隊名樣式。(若有設定冠軍隊的隊名樣式,此參數便成為亞軍球隊專屬的樣式)
  • TOP1-STYLE:冠軍隊的隊名樣式。

[編輯] 預設樣式

  • 當使用 TOP32TOP64 設定學生球隊的大規模賽事時,可使用幾個預設樣式,目前僅歷屆前四名設有預設樣式:
  • 高苑綠(深綠底黃字粗體略帶陰影)
  • 平鎮藍(深藍底白字粗體略帶陰影)
  • 桃農藍(深藍底白字粗體略帶陰影,同平鎮藍)
  • 北科藍(深藍底白字粗體略帶陰影,同平鎮藍)
  • 興大藍(深藍底白字粗體略帶陰影,同平鎮藍)
  • 穀保藍(淺藍底白字粗體略帶陰影)
  • 西苑橘(橘底白色粗體略帶陰影)
  • 屏中白(白底紅字粗體略帶陰影)
  • 鶯歌白(白底紅字粗體略帶陰影,同屏中白)
  • 若晉級球隊不適合預設樣式,則直接設定其樣式即可。

[編輯] 完整路線設定

  • 晉級路線主要針對 TOP32TOP64 的前八強球隊,其中:
  • 晉級線段顏色:從32強或64強階段開始畫起,直至球隊淘汰或奪冠為止。
  • 晉級隊名樣式:原則上從8強階段才開始具備,並非從32強或64強階段就開始具備。參數 FULL-PROGRESS-N 的用途便是指定「前 N 名球隊可以從32強或64強階段」就開始具備特殊隊名樣式,預設值為 2,即冠亞軍球隊才會從頭到尾都具備特殊格式,第 3..8 是從八強階段才開始具備特殊樣式。如果希望四強或八強球隊都從頭到尾有特殊樣式,就將此參數值設為 48

[編輯] 小提醒

  • 雖然前八強的樣式皆可自訂,但有這些功能並不代表非用不可。因為把線形圖設得花花綠綠、什麼顏色都有時,眼睛看了就暈了,反而失去突顯冠亞軍球隊的效果。個人建議設定冠亞軍球隊合情合理,四強也理所當然,八強可考慮,視需求而定,但八強得稍微考量所使用的色彩是否造成版面混亂,即使設定也可能必須用較不突兀的顏色(相較於背景及其它未晉級的球隊)。
  • 慎用 FULL-PROGRESS-N 參數,其預設值之所以為 2,就是我認為設成其它值會使畫面太混亂,亦使冠亞軍失去焦點,2 是我認為一個比較中庸且兼顧效果的值。

[編輯] 線形圖外框

  • 此模板 {{XXT}} 可充當線形圖外框,做為版面調整之用。
  • 線形圖皆可獨立使用,但加上外框也不賴。
  • 雖然外框裡理應是線形圖,但由於此模板用法單純,裡面要放任何阿沙不嚕的東西也可以,算是變相的應用。

[編輯] 語法

1 {{User:Digipunk/XXT
2 | HEAD = <標題字串。有值則顯示在上方,無值則在左方顯示長形區塊>
3 | BODY = <即 XXT/TOP[64..4] 線形圖模板>
4  
5 | STYLE = <整體樣式,用以設定周邊距離等屬性>
6 | STYLE-HEAD = <標題樣式>
7 | STYLE-BODY = <內容樣式>
8 }}

[編輯] 範例

{{XXT
| HEAD = 只是範例
| BODY =
    {{XXT/TOP4
      | TOP4-M1-TEAMS  = TEAM1 / TEAM2
      | TOP4-M2-TEAMS  = TEAM3 / TEAM4
      | TOP4-M1-SCORES = 1/2
      | TOP4-M2-SCORES = 3/4
      ...
    }}
}}

[編輯] 模板功能異動

[編輯] 指定任意位置的隊名

  • [2016-08-09] 權衡利弊,為了解決模板先天限制,拿掉部份功能,間接影響設定種子球隊之彈性。目前狀況為:種子球隊只能少打一輪。例如使用 TOP16,至多只能將種子球隊設定在下一輪(TOP8 階段)。雖然使用彈性降低了,但不違反現實世界裡的實際狀況,種子球隊多半只少打一輪而已。
  • [2016-08-10] 欲指定種子球隊名稱時,必須使用獨立寫法,無法使用合併寫法。

[編輯] 場次代稱

  • 從技術觀點,這算是模板開發裡很極致應用,內部需要大量邏輯與細心調整,玩到這樣我也沒什麼遺憾了。(2016-08-20
  • 本系列模板裡的比賽場次,以圖形位置為準,例如 TOP64 線形圖左上角第一場為 TOP64-M1-,左下角最後一場為 TOP64-M32-,皆以圖形位置為原則。然而,根據我自己的使用經驗,若是產生一份已完賽的線形圖、一口氣完成,問題不大,位置觀念很清楚;可是當我隨著比賽進行,每天更新進度時,發現每天都要重新回憶一下每場比賽的屬性(位置、參數名稱),有點花時間與傷腦筋,故新增「場次代稱」來解決此困擾。
  • 場次代稱,亦即在剛開始建立線形圖時,為每個場次取一個名字,之後便以此名稱填入資料,不必再 TOP64-M1-TOP64-M2- 了。

[編輯] 範例

{{XXT/TOP64
  | TOP64-M1  = G1
  | TOP64-M2  = G2
  | TOP64-M3  = G3
    ...
  | TOP64-M64 = G64
}}
  • 在上面例子裡,自訂了場次代稱。建議使用場次編號,因為賽程表通常會有場次編號,如果線形圖也用場次編號來代表場次,即可輕易建立兩者的連結,看賽程表就知道要將資料填入哪一場,而不是反覆看著圖形、找到正確位置。(以上的 G1G2 只是舉例,場次編號視實際賽程而定)
  • 定義場次代稱之後,則以下兩種寫法同義:
{{XXT/TOP64
  <!-- 原本是以圖形位置為準的寫法 -->
  | TOP64-M3-TEAMS  = 球隊甲/球隊乙
  | TOP64-M3-SOCRES = 2/5
  | TOP64-M3-Info   = Game 3 / Field A / 2016-08-20 13:30
    ...

  <!-- 現在可以這樣表達,效果完全相同,但不必再管位置了,看著賽程表就可持續填入資料 -->
  | G3-TEAMS        = 球隊甲/球隊乙
  | G3-SOCRES       = 2/5
  | G3-Info         = Game 3 / Field A / 2016-08-20 13:30
    ...
}}

[編輯] 優先權

  • 如果定義了場次代稱,而且在填入資料時同時使用兩種表示法,則代稱的優先權較高。

[編輯] 開發記錄

  • [2016-07-20] 建立模板。
  • [2016-07-26] 遇到巢狀條件句階層過多的錯誤,簡化寫法與流程,並一律轉換隊名縮寫。
  • [2016-08-01] 棄賽處置。
  • [2016-08-08] 設計 64 強圖時為了符合系統的 40 層巢狀條件限制,全系列拿掉任意定義隊名的功能。
  • [2016-08-14] 晉級路線諸多細節處理、自動消除未用到下方列、外框。
  • [2016-08-19] 新增勝隊隊名樣式。
  • [2016-08-20] 新增場次代稱。
  • [2016-11-16] 新增來源標示。
  • [2017-08-18] TOP64TOP32 也支援來源標示。
  • [2017-12-16] TOP16..4SCORES 加入第三、四欄以因應和局晉級的情況(分數1/分數2/比較1/比較2)。
  • [2018-05-27] 拿掉對於比分的防呆處理(原利用 {{#iferror}} 避免使用者填入非數值),最初只是程式設計者的習慣(不能預設所有使用者都會乖乖填寫,一定有調皮搗蛋的人),但長久觀察下來覺得應該沒有那麼無聊的人。拿掉防呆處理,省下一層判斷條件,改為無限制直接指定後續場次的隊名(原僅能指定至下一層)。