本館粉絲專頁

使用者:Digipunk/XXT:修訂版本之間的差異

分享此網頁到Facebook
分享此網頁到Plurk
分享此網頁到百度搜藏
分享此網頁到Twitter
分享此網頁到Del.icio.us
台灣棒球維基館
跳轉到: 導覽搜尋
開發記錄
第1行: 第1行:
 
<INCLUDEONLY><DIV STYLE="margin:10px 20px;background:#EEE;padding:6px 12px;width:60%">
 
<INCLUDEONLY><DIV STYLE="margin:10px 20px;background:#EEE;padding:6px 12px;width:60%">
 
此頁面為線形圖(<tt>XXT</tt>)說明頁,無法直接提供被引用的功能,使用方法請參考下列頁面:
 
此頁面為線形圖(<tt>XXT</tt>)說明頁,無法直接提供被引用的功能,使用方法請參考下列頁面:
:* <tt>[[{{#ifexist:Template:XXT|Template:XXT|User:digipunk/XXT}}|<nowiki>{{XXT}}</nowiki>]]</tt>
+
:* {{User:Digipunk/TPL|XXT|link}}
 
</DIV></INCLUDEONLY><NOINCLUDE>
 
</DIV></INCLUDEONLY><NOINCLUDE>
 
==命名==
 
==命名==
 
===XXT===
 
===XXT===
 +
<DIV STYLE="width:85%">
 
: 這類模板名稱只要簡短、有意義即可,不要落落長,也不要毫無意義的名稱。
 
: 這類模板名稱只要簡短、有意義即可,不要落落長,也不要毫無意義的名稱。
 
: <tt>XXT</tt> 勉強符合要求,夠簡短,意義方面可聯想為「線形圖」漢語拼音的字首(<tt>Xian-Xing-Tu</tt>)。
 
: <tt>XXT</tt> 勉強符合要求,夠簡短,意義方面可聯想為「線形圖」漢語拼音的字首(<tt>Xian-Xing-Tu</tt>)。
 +
</DIV>
  
 
===TOP<I>n</I>===
 
===TOP<I>n</I>===
 +
<DIV STYLE="width:85%">
 
: 設計此系列模板時,原本使用正式英文縮寫做為名稱,例如:
 
: 設計此系列模板時,原本使用正式英文縮寫做為名稱,例如:
 
:* <tt>EF = Eighth Finals</tt>,十六強。
 
:* <tt>EF = Eighth Finals</tt>,十六強。
第21行: 第24行:
  
 
: 個人能力有限,僅止於顯示至多十六強的單淘汰線形圖,別問怎麼沒有卅二強以上或雙淘汰,那些寫下去我會爆炸。
 
: 個人能力有限,僅止於顯示至多十六強的單淘汰線形圖,別問怎麼沒有卅二強以上或雙淘汰,那些寫下去我會爆炸。
 +
</DIV>
  
 
==架構==
 
==架構==
 +
<DIV STYLE="width:85%">
 
: 在這個 <tt>XXT</tt> 線形圖系統裡:
 
: 在這個 <tt>XXT</tt> 線形圖系統裡:
 
:* 若以「階層」劃分,依隊數之不同而分成不同階層的模板:<tt>TOP<nowiki>[1..16]</nowiki></tt>,這些層級並非獨立運作,而是資料一層層傳遞,緊密結合。(<tt>TOP1</tt> 在現實世界裡沒有意義,但在這個 <tt>XXT</tt> 架構裡可能是最重要的一個層級,因為各層級的資料最終將彙整於此)
 
:* 若以「階層」劃分,依隊數之不同而分成不同階層的模板:<tt>TOP<nowiki>[1..16]</nowiki></tt>,這些層級並非獨立運作,而是資料一層層傳遞,緊密結合。(<tt>TOP1</tt> 在現實世界裡沒有意義,但在這個 <tt>XXT</tt> 架構裡可能是最重要的一個層級,因為各層級的資料最終將彙整於此)
 
:* 若以「功能」劃分,各個層級又分成前端模板(用於讓使用者直接使用,並且層層整理、包裝、傳遞資訊給下一階段的負責者),以及進行最後實際輸出的線形圖產生者。
 
:* 若以「功能」劃分,各個層級又分成前端模板(用於讓使用者直接使用,並且層層整理、包裝、傳遞資訊給下一階段的負責者),以及進行最後實際輸出的線形圖產生者。
 
+
</DIV>
===相關模板===
+
:* <tt>[[{{#ifexist:Template:XXT/TOP16|Template:XXT/TOP16|User:digipunk/XXT/TOP16}}|<nowiki>{{XXT/TOP16}}</nowiki>]]</tt>
+
:* <tt>[[{{#ifexist:Template:XXT/TOP8|Template:XXT/TOP8|User:digipunk/XXT/TOP8}}|<nowiki>{{XXT/TOP8}}</nowiki>]]</tt>
+
:* <tt>[[{{#ifexist:Template:XXT/TOP4|Template:XXT/TOP4|User:digipunk/XXT/TOP4}}|<nowiki>{{XXT/TOP4}}</nowiki>]]</tt>
+
:* <tt>[[{{#ifexist:Template:XXT/TOP2|Template:XXT/TOP2|User:digipunk/XXT/TOP2}}|<nowiki>{{XXT/TOP2}}</nowiki>]]</tt>
+
:* <tt>[[{{#ifexist:Template:XXT/TOP1|Template:XXT/TOP1|User:digipunk/XXT/TOP1}}|<nowiki>{{XXT/TOP1}}</nowiki>]]</tt>
+
  
 
==運作邏輯==
 
==運作邏輯==
 
===前端介面===
 
===前端介面===
 +
<DIV STYLE="width:85%">
 
: 下列模板不僅是可直接使用的前端介面,彼此間亦為階層式關係,資料會整理成下一階段所需的參數並逐層傳遞。
 
: 下列模板不僅是可直接使用的前端介面,彼此間亦為階層式關係,資料會整理成下一階段所需的參數並逐層傳遞。
:* 模板 <tt>[[{{#ifexist:Template:XXT/TOP16|Template:XXT/TOP16|User:Digipunk/XXT/TOP16}}|<nowiki>{{XXT/TOP16}}</nowiki>]]</tt> 設定 <tt>TOP16</tt> 資訊並整理為 <tt>TOP8</tt> 所需參數。
+
:* 模板 {{User:Digipunk/TPL|XXT/TOP16|link}} 設定 <tt>TOP16</tt> 資訊並整理為 <tt>TOP8</tt> 所需參數。
:* 模板 <tt>[[{{#ifexist:Template:XXT/TOP8|Template:XXT/TOP8|User:Digipunk/XXT/TOP8}}|<nowiki>{{XXT/TOP8}}</nowiki>]]</tt> 設定 <tt>TOP8</tt> 資訊並整理為 <tt>TOP4</tt> 所需參數。
+
:* 模板 {{User:Digipunk/TPL|XXT/TOP8|link}} 設定 <tt>TOP8</tt> 資訊並整理為 <tt>TOP4</tt> 所需參數。
:* 模板 <tt>[[{{#ifexist:Template:XXT/TOP4|Template:XXT/TOP4|User:Digipunk/XXT/TOP4}}|<nowiki>{{XXT/TOP4}}</nowiki>]]</tt> 設定 <tt>TOP4</tt> 資訊並整理為 <tt>TOP2</tt> 所需參數。
+
:* 模板 {{User:Digipunk/TPL|XXT/TOP4|link}} 設定 <tt>TOP4</tt> 資訊並整理為 <tt>TOP2</tt> 所需參數。
:* 模板 <tt>[[{{#ifexist:Template:XXT/TOP2|Template:XXT/TOP2|User:Digipunk/XXT/TOP2}}|<nowiki>{{XXT/TOP2}}</nowiki>]]</tt> 設定 <tt>TOP2</tt> 資訊並整理為 <tt>TOP1</tt> 所需參數。
+
:* 模板 {{User:Digipunk/TPL|XXT/TOP2|link}} 設定 <tt>TOP2</tt> 資訊並整理為 <tt>TOP1</tt> 所需參數。
:* 模板 <tt>[[{{#ifexist:Template:XXT/TOP1|Template:XXT/TOP1|User:Digipunk/XXT/TOP1}}|<nowiki>{{XXT/TOP1}}</nowiki>]]</tt> 設定 <tt>TOP1</tt> 資訊並整理為最終參數、呼叫指定的 <tt>Renderer</tt>。
+
:* 模板 {{User:Digipunk/TPL|XXT/TOP1|link}} 設定 <tt>TOP1</tt> 資訊並整理為最終參數、呼叫指定的 <tt>Renderer</tt>。
 +
</DIV>
  
 
===後端運作===
 
===後端運作===
 +
<DIV STYLE="width:85%">
 
: 這裡將實際產生線形圖的後端運作者稱為 <tt>Renderer</tt>(故此系列名稱結尾為 <tt><B>"R"</B></tt>),參數複雜而繁多,不適合人類直接使用。
 
: 這裡將實際產生線形圖的後端運作者稱為 <tt>Renderer</tt>(故此系列名稱結尾為 <tt><B>"R"</B></tt>),參數複雜而繁多,不適合人類直接使用。
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP16R|<nowiki>{{XXT/TOP16R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP16</tt> 線形圖,並為勝隊畫出晉級粗線。
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP16R|<nowiki>{{XXT/TOP16R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP16</tt> 線形圖,並為勝隊畫出晉級粗線。
第50行: 第52行:
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP2R|<nowiki>{{XXT/TOP2R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP2</tt> 線形圖,並為勝隊畫出晉級粗線。
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP2R|<nowiki>{{XXT/TOP2R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP2</tt> 線形圖,並為勝隊畫出晉級粗線。
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP1R|<nowiki>{{XXT/TOP1R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP1</tt> 線形圖,並為勝隊畫出晉級粗線。(此模板無前端意義,只是為了配合隊型。會用到此模板的人應該是很無聊)
 
:* 模板 <tt>[[User:Digipunk/XXT/TOP1R|<nowiki>{{XXT/TOP1R}}</nowiki>]]</tt> 根據已知參數產生 <tt>TOP1</tt> 線形圖,並為勝隊畫出晉級粗線。(此模板無前端意義,只是為了配合隊型。會用到此模板的人應該是很無聊)
 +
</DIV>
  
 
===簡單說===
 
===簡單說===
 +
<DIV STYLE="width:85%">
 
:* 使用者想畫出怎麼樣的線形圖,就直接使用 <tt>TOP<I>n</I></tt> 系列的模板。
 
:* 使用者想畫出怎麼樣的線形圖,就直接使用 <tt>TOP<I>n</I></tt> 系列的模板。
 
:* 至於 <tt>TOP<I>n</I>R</tt> 系列是幕後工作者,使用者不宜直接呼叫。
 
:* 至於 <tt>TOP<I>n</I>R</tt> 系列是幕後工作者,使用者不宜直接呼叫。
 +
</DIV>
  
 
==流程==
 
==流程==
 
再補充,需要圖解。
 
再補充,需要圖解。
 +
 +
==隊名表示法之進階探討==
 +
<DIV STYLE="width:85%">
 +
: 此系列線形圖以「場次」為單位,以 <tt><B>TOP<I>n</I>-M<I>x</I>-</B></tt> 表示「<tt><I>n</I></tt> 強階段,第 <tt><I>x</I></tt> 場」比賽。
 +
:* 兩隊名稱:<tt>TOP<I>n</I>-M<I>x</I>-TEAMS &nbsp;= team1/team2</tt>
 +
:* 兩隊得分:<tt>TOP<I>n</I>-M<I>x</I>-SCORES = score1/score2</tt>
 +
:* 場次資訊:<tt>TOP<I>n</I>-M<I>x</I>-INFO &nbsp;&nbsp;= game/field/time</tt>
 +
: 使用的格式都是合併寫法(以 <tt>"/"</tt> 分隔)。其中,兩隊得分與場次資訊沒有什麼問題,前者只是單純數字,後者可以控制不在文字裡出現 <tt>"/"</tt>,但是隊名的問題就大了。
 +
 +
: 為了擁有合併寫法的簡潔便利,此系列模板以國家代碼形式接受隊名,將自動呼叫 {{User:Digipunk/TPL|TeamX|link}} 顯示成小國旗與中文隊名。
 +
 +
<PRE STYLE="padding:5px 20px;margin-left:20px">
 +
| TOP8-M2-TEAMS  = ROC / KOR
 +
| TOP8-M2-SCORES = 18 / 0
 +
| TOP8-M2-INFO  = Game 2 / 台中洲際 / 2016-07-25 17:30
 +
</PRE>
 +
</DIV>
 +
 +
====技術觀點====
 +
<DIV STYLE="width:85%">
 +
:* 模板在接受這種合併寫法時,必須利用 <tt>"/"</tt> 將字串切開,然而此功能的原始目的是進行路徑解析,也就是說,特殊符號不應該出現在 <tt>"/"</tt> 的兩邊,包括中括號、大括號等等,這意味著我們不能直接在隊名中使用其它模板(如 {{User:Digipunk/TPL|TeamX|link}}),否則將造成解析失敗,無法判斷 <tt>"/"</tt> 兩邊的子字串。
 +
:* 即使這種表示法只能以代碼表示球隊,但已滿足絕大部份國際賽所需。
 +
</DIV>
 +
 +
====替代寫法====
 +
<DIV STYLE="width:85%">
 +
: 某些時候,上述輸入法不適用,例如:
 +
:* 全壘打大賽,參賽者為個人,若我們想在人名前面加上球隊 logo,上述輸入法就不適用了,因為球隊 logo 並沒有對應的國家代碼。
 +
:* 基於某些因素,在一場賽事裡有國家用兩個以上的分隊參賽,則上述表示法也不適用。例如日本以三個分隊參賽,而上述表示法只能以代碼 <tt>JPN</tt> 或 <tt>JP</tt> 代入,顯示出來的中文隊名都是日本,無法辨別其分隊。([[2008年第五屆亞洲青少棒錦標賽]]便有三個日本分隊)
 +
 +
: 任何情況下都可以用另一種形式「單獨指定」隊名(或人名),而且不受限於所使用的文字或符號,只要把 <tt>-TEAMS</tt> 拆成 <tt>-TEAM1</tt> 與 <tt>-TEAM2</tt> 即可。以下兩種寫法同義:
 +
<PRE STYLE="padding:5px 20px;margin-left:40px">
 +
<!-- 八強階段,第三場,美國 vs 墨西哥 -->
 +
| TOP8-M3-TEAMS = USA / MEX
 +
</PRE>
 +
<PRE STYLE="padding:5px 20px;margin-left:40px">
 +
<!-- 八強階段,第三場,美國 vs 墨西哥 -->
 +
| TOP8-M3-TEAM1 = {{TeamX|USA|美國 }}
 +
| TOP8-M3-TEAM2 = {{TeamX|MEX|墨西哥}}
 +
</PRE>
 +
: 這種單獨指定的形式,自然也可以套用在球員:
 +
<PRE STYLE="padding:5px 20px;margin-left:40px">
 +
<!-- 2016年中職全壘打大賽,八強階段,第二場,陽耀勳 vs 高國輝 -->
 +
| TOP8-M2-TEAM1 = {{Lamigo桃猿}} [[陽耀勳]]
 +
| TOP8-M2-TEAM2 = {{義大犀牛}} [[高國輝]]
 +
</PRE>
 +
: 以及分隊的情況:
 +
<PRE STYLE="padding:5px 20px;margin-left:40px">
 +
<!-- 2008 BFA U15,以隊名為例,並非實際賽程,該比賽不是單淘汰制 -->
 +
| TOP8-M1-TEAM1 = {{TeamX|JPN|日本伊豆}}
 +
| TOP8-M1-TEAM2 = {{TeamX|JPN|日本座間}}
 +
</PRE>
 +
</DIV>
 +
 +
====優先權====
 +
<DIV STYLE="width:85%">
 +
: 個人認為單獨指定的項目,優先權應該高於合併寫法,於是做了下列設計。
 +
: 假設使用此系列模板時做了下列設定(同時使用兩種寫法),則以單獨指定者為優先,無關乎書寫順序:
 +
<PRE STYLE="padding:5px 20px;margin-left:40px">
 +
| TOP8-M3-TEAM2 = JPN
 +
| TOP8-M3-TEAMS = USA / MEX
 +
| TOP8-M3-TEAM1 = RUS
 +
<!-- 該場次的兩隊將為:俄羅斯 vs 日本 -->
 +
</PRE>
 +
</DIV>
  
 
==開發記錄==
 
==開發記錄==
 +
<DIV STYLE="width:85%">
 
:* <tt>[2016-07-20]</tt> 建立模板。
 
:* <tt>[2016-07-20]</tt> 建立模板。
 +
</DIV>
  
 
</NOINCLUDE>
 
</NOINCLUDE>

2016年7月25日 (一) 19:22的修訂版本

目次

命名

XXT

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

TOPn

設計此系列模板時,原本使用正式英文縮寫做為名稱,例如:
  • EF = Eighth Finals,十六強。
  • QF = Quarter Finals,八強(準々決賽)。
  • SF = Semi Finals,四強(準決賽)。
  • FF = Final,二強(決賽)。
瞬間又覺得這些名稱不夠直覺,我自己寫到一半都可能搞混,不如來個「台式邏輯」,改成現在的 TOPn 形式,直覺多了:
  • TOP16,十六強。
  • TOP8,八強。
  • TOP4,四強。
  • TOP2,二強。
個人能力有限,僅止於顯示至多十六強的單淘汰線形圖,別問怎麼沒有卅二強以上或雙淘汰,那些寫下去我會爆炸。

架構

在這個 XXT 線形圖系統裡:
  • 若以「階層」劃分,依隊數之不同而分成不同階層的模板:TOP[1..16],這些層級並非獨立運作,而是資料一層層傳遞,緊密結合。(TOP1 在現實世界裡沒有意義,但在這個 XXT 架構裡可能是最重要的一個層級,因為各層級的資料最終將彙整於此)
  • 若以「功能」劃分,各個層級又分成前端模板(用於讓使用者直接使用,並且層層整理、包裝、傳遞資訊給下一階段的負責者),以及進行最後實際輸出的線形圖產生者。

運作邏輯

前端介面

下列模板不僅是可直接使用的前端介面,彼此間亦為階層式關係,資料會整理成下一階段所需的參數並逐層傳遞。
  • 模板 {{XXT/TOP16}} 設定 TOP16 資訊並整理為 TOP8 所需參數。
  • 模板 {{XXT/TOP8}} 設定 TOP8 資訊並整理為 TOP4 所需參數。
  • 模板 {{XXT/TOP4}} 設定 TOP4 資訊並整理為 TOP2 所需參數。
  • 模板 {{XXT/TOP2}} 設定 TOP2 資訊並整理為 TOP1 所需參數。
  • 模板 {{XXT/TOP1}} 設定 TOP1 資訊並整理為最終參數、呼叫指定的 Renderer

後端運作

這裡將實際產生線形圖的後端運作者稱為 Renderer(故此系列名稱結尾為 "R"),參數複雜而繁多,不適合人類直接使用。
  • 模板 {{XXT/TOP16R}} 根據已知參數產生 TOP16 線形圖,並為勝隊畫出晉級粗線。
  • 模板 {{XXT/TOP8R}} 根據已知參數產生 TOP8 線形圖,並為勝隊畫出晉級粗線。
  • 模板 {{XXT/TOP4R}} 根據已知參數產生 TOP4 線形圖,並為勝隊畫出晉級粗線。
  • 模板 {{XXT/TOP2R}} 根據已知參數產生 TOP2 線形圖,並為勝隊畫出晉級粗線。
  • 模板 {{XXT/TOP1R}} 根據已知參數產生 TOP1 線形圖,並為勝隊畫出晉級粗線。(此模板無前端意義,只是為了配合隊型。會用到此模板的人應該是很無聊)

簡單說

  • 使用者想畫出怎麼樣的線形圖,就直接使用 TOPn 系列的模板。
  • 至於 TOPnR 系列是幕後工作者,使用者不宜直接呼叫。

流程

再補充,需要圖解。

隊名表示法之進階探討

此系列線形圖以「場次」為單位,以 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 即可。以下兩種寫法同義:
<!-- 八強階段,第三場,美國 vs 墨西哥 -->
| TOP8-M3-TEAMS = USA / MEX
<!-- 八強階段,第三場,美國 vs 墨西哥 -->
| 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 日本 -->

開發記錄

  • [2016-07-20] 建立模板。