其規則是每下一棋子必須將對方的棋子包圍,而被包圍的棋子則調換成玩家己方的棋子,此動作稱為Flip,如下圖所示,一列中原僅有黑白各一棋子,當玩家於白棋右方下一黑棋時,兩黑棋由於包圍住白棋,符合遊戲規則,因此玩家可將對方的白棋移除,換成玩家的黑棋:
依據此規則,雙方依序下棋並調換對方的棋子,直到無法再下或棋子填滿棋盤為止,而以棋盤上數目較多棋子的一方為勝方。除了上述規則之外,另需遵守以下規則:
- 若所下的位置並沒有包圍任何對方棋子時,屬無效。
- 若包圍的範圍中含有空格,亦屬無效。
- 若沒有任何空格可下時,則由對方繼續。
- 包圍的方向可為上、下、左、右、左斜及右斜等方向。
其致勝策略如下:
- 儘可能佔領棋盤中的四個角落,由於角落並不會腹背受敵,當佔領角落時,更容易包圍對方的棋子,但對方的棋子則無法包圍角落的棋子,因此角落為雙方必爭之地。
- 千萬不可下在X Square上,因為如此便讓對方有機會佔領棋盤的角落。同理,以棋盤四邊而言,亦千萬不要下在C Square上。
- 若棋子需下在棋盤四邊時,則A Square的位置比B Square好,而C Square則為最差。
- 儘可能停留在Sweet Sixteen的區域中,以避免對方有機會佔領角落。
- 儘可能建立由角落所組成的對角線,此對角線稱為Main Diagonal。
- 儘可能避免翻動對方太多的棋子,遊戲中贏多不見得好,最後贏才算是贏,此乃以退為進的策略,稱為Evaporation Strategy。
除了加權比重之外,由於可在遊戲時,任選黑白一方為玩家的棋子顏色,因此在遊戲之初,必須依玩家所下的第一顆棋子位置決定雙方棋子顏色,黑白雙方在遊戲開始時,所有可能下的位置,如下圖所示,其中B代表黑棋、W代表白棋:
若以二維陣列而言,假設分別以gridx與gridy代表水平與垂直位置,則分別由0到7,例如左上角的位置為 (0, 0)、右下角為 (7, 7),因此上圖的可能位置則分別依序如下圖所示,依此可決定雙方棋子的顏色:
最後當棋子填滿棋盤或無法再下時,則依棋子的多寡決定勝負。
JavaFX Reversi如下所示。
Example: Link
© Chia-Hui Huang
沒有留言:
張貼留言