オセロの終盤読み切りプログラムです。
もし勝つor引き分けることができるならばそれを判定し、そのための次の手を出力します。
もし負けることが確定しているのならばそのことを出力します。
一部primenumberさんのブログのコードを使わせていただきました。
issenのほうが僕のプログラムより優秀なのでガチの方は参考にするとよいと思います。
1
11100222
22200111
11100222
00011000
00011000
22200111
11100222
22200111
のような形式です。
1行目は現在の手番を表しており、0ならば白番、1ならば黒番を意味します。
2~9行目は現在の盤面を表しており、0ならば空白、1ならば黒、2ならば白を意味します。
C++11以上に対応したgccの環境が必要です(デフォルトでC++11がついていない場合はcompile.shのコンパイルオプションに-std=c++11を書き加えてください)。
入力フォーマットに従って入力を書いてin.txtなどに保存し、
$ bash compile.sh
$ ./a < in.txt
をすると出力結果が返ってきます。
最初の一手については今どの手を探索しているのかが表示されるので、あまりにも遅い場合は強制終了してください。