• 沒有找到結果。

第三章 研究方法與步驟

3.4 棋形擷取

棋形擷取目的找出開局或棋手下棋的模式(pattern),對開局紀錄或棋局紀錄 中,每走一步棋在棋盤上形成的局面,進行棋形擷取。我們定義了要擷取的棋形 與中心兵形,設計局面表示的方法,以及棋形與中心兵形擷取的方式。

A. 棋形定義與中心兵形定義

關於棋形擷取要擷取的棋形,我們參考 Walczak 對棋形的定義[33]][34],但 是此棋形定義是針對整盤棋局的階段,有些定義不適用開局階段的情況,因此我 們針對開局階段的特徵,修改棋形定義來符合在開局階段所要尋找的棋形。

 Walczak 對棋形的定義:

1. 以某個棋子為中心,與周圍相鄰的同一方棋子,形成的方形區塊 2. 區塊內最少要包含三個同一方的棋子

下圖為兩個大小 3x3 的棋形:

圖 二十、棋形

25

 我們對於棋形的定義:

1. 以某個棋子為中心,與周圍相鄰的同一方棋子,形成的方形區塊 2. 區塊內最少要包含兩個移動過的同一方棋子

在開局階段,如果滿足棋形的條件是「區塊內最少包含三個同一方的棋子」,

會因為開局階段才剛開始將棋子從初始位子移動出來,導致會有非常多滿足條件 的棋形都是大部分棋子都在初始位置上的棋形,這些都是棋手都尚未移動過的棋 子所形成的棋形,無法代表棋手下棋的模式。因此,我們將滿足棋形的條件更改 為「區塊內最少要包含兩個移動過的同一方棋子」,用此棋形來表示棋手下棋的 模式。判斷區塊內的棋子是否為移動過的棋子的方式,是比對區塊內的每個格子 與初始局面格子的棋子差異,若區塊內出現與初始局面格子的棋子狀態不同且不 是空的棋子,就判定為移動過的棋子。下圖二十一是初始局面,圖二十二的方框 內區塊內的兩個移動過的棋子─騎士與兵,符合棋形的滿足條件。

圖 二十一、初始局面 圖 二十二、棋局局面

對於開局階段,除了定義棋形外,我們還定義了中心兵形來表示開局的特徵。

在開局階段中,兵的位置影響了後方其他棋子的發展,其中又以在中心區域的兵 特別重要,因為中心區域是雙方在開局階段爭奪的區域,棋子可以佔據中心位置,

就佔據了優勢位置,中心區域的兵影響棋子往中心的發展[6]。

 中心兵形的定義:

中心兵形是在棋盤正中央 4x4 大小的區塊內,只看一方的兵,所形成的兵形。

在下圖二十三(左)中方框區域為棋盤正中央 4x4 的區塊,圖二十三(中)為圖二十

26

三(左)棋局的白方中心兵形,圖二十三(右)為圖二十三(左)的黑方中心兵形。

(左)棋局局面 (中)白方的中心兵形 (右)黑方的中心兵形 圖 二十三、中心兵形

B. 局面表示法

我們將棋盤局面(圖二十四)以 8x8 的矩陣(圖二十五)表示,圖中橫軸的 C 值 代表 column、縱軸的 R 值代表 row,每種棋子以特定代碼表示,如表三,白方 的棋子代碼為正值,而黑方的棋子代碼為負值,例如白方在第 6 個 column、第 3 個 row 的騎士(Knight)以代碼 3 表示;黑方在第 5 個 column、第 6 個 row 的兵(Pawn) 以代碼 -1 表示。此外,未被佔領的格子則以 0 表示。

圖 二十四、棋盤局面 圖 二十五、8x8 矩陣 表 三、各棋子的代碼

27

C. 棋形獲取與中心兵形獲取

 棋形獲取

我們對棋盤上一方的每個棋子,以該棋子為中心,在與中心相鄰的周圍格子,

共 9 格 3x3 的區塊內,走訪每個的格子,若符合棋形成立的條件,則獲取此棋形 (如圖二十六。走訪的順序由中心的左下角開始,由左至右,由下至上,依序走 訪,若遇到超出棋盤範圍的格子,視為沒有棋子。獲取出的棋形,以走訪路徑上 代碼形成的序列表示。一個棋形的表示法為棋形左下角格子的位置(column, row) 加上走訪路徑的代碼序列,中間以冒號區隔,例如圖二十六中的棋形表示為 52:011030100,代表此棋形左下角的位置是在(column 5, row 2)。

圖 二十六、3x3 白方棋子的棋形。棋形表示為 52:011030100

 中心兵形獲取

中心兵形的獲取是針對棋盤中心 4x4 大小區域內一方的兵來獲取。區域內走 訪 的 方 式 與 棋 形 獲 取 相 同 。 圖 二 十 七 中 局 面 的 白 方 中 心 兵 形 表 示 為 33:0000011000000000,黑方的中心兵形表示為 33:000000000-10000-10。

28

(左)棋盤局面的中心兵形 (右)走訪路徑

圖 二十七、中心兵形

相關文件