私は現在、Goボードを処理するためのコードを書いています。碁盤は色の配列として表されます。配列にはsize
×size
エントリがあり、2次元の正方形のボードを表します。
enum color {
EMPTY,
BLACK,
WHITE,
};
struct go_board {
unsigned int size;
enum color intersections[];
};
移動する場合enum color player
、次の手順が適用されます:(ルールを参照)
- [...]
- Pから色Cの点へのPの色の(垂直または水平)隣接する点の経路がある場合、色Cではなく点PはCに到達すると言われます。
- 色をクリアすることは、空に達しないその色のすべてのポイントを空にするプロセスです。
- [...]
- 移動は、[...]対戦相手の色をクリアしてから、自分の色をクリアすることで構成されます。
ボードをクリアするための高速な(計算の複雑さと実際の速度の点で)アルゴリズムを探しています。手伝って頂けますか?