ひとつ前に戻る

囲碁の「次の一手タスク」をニューラルネットワークで作る

学習用データの作成3 碁盤ソフトの作成

前回までで、下記データ作成の手順の2まではできました。
1 SGFファイル読み込み
2 1手目で黒の手番なので、ここでまずデータを作成
3 次の一手(黒)を打った時点で取られる石がないか確認し、あればその石を取り除く。
4 次の一手(白)を打った時点で取られる石がないか確認し、あればその石を取り除いて、データを作成する。
あとは3、4の繰り返し

手順3と4を実施するには石が取られたかどうかを調べる必要があります。
このために碁盤ソフトを作って対応します。

石の配置 table[x][y]に石の配置を入れることにします。
xが列で、yが行です。
空点は0、黒石は1、白石は2、盤端からひとつ外を3と表すことにします。
例えば1行3列に黒石を置いたらtable[3][1]=1 となります。

なお盤端からひとつ外は3と決めているので、あらかじめ値を入れておきます。
それ以外の点は空点なので、初期値ではすべて0となります。
石の配置をコーディング 上記のことをプログラムすると左となります。
連について 石が取られるときは、同じ色の石が上下につながっているときは、
その石全部を囲まれたときに取られます。
このつながっている石を「連」といいます。
この連を分かるようにするため、ren[x][y]に連番号を入れることにします。
初期値は0にしておき、石が打たれた時点で連番号を入れます。
碁盤ソフト このような考えで作った碁盤ソフトです。
ひとまずクリックして打てるところまで作りました。
石のヌキにも対応しています。
左図は連を表示しています。

ひとつ前に戻る