グラフ理論を用いた囲碁 GraphGo v0.15
マウスをクリックすることで黒番の着手ができます。白番はAI(CPUによる思考ロジック)が着手します。AIは眼の候補地が相手より多くなるように打っているのですが...。内部ではグラフ理論を用いた局面のクラスPosを利用しています。AIの挙動を調べるために6路盤にしています。
囲碁アプレット GraphGo
囲碁アプレットです。盤上でマウスをクリックすると黒の手を着手できます。パスできるようになりました。コウ、投了は扱えません。デフォルトでは活き石が(明るく)表示されます。見直した数式に伴いプログラムの修正しましたが、ベクトルの計算(セキ石など)にはまだ誤りがあるようです。
アプレット
イメージテストアプレット ImageTestApplet
クラスGTable, GBoard, GBowl, GLidを使った囲碁画面表示用アプレットです。変更ありません。
アプレット
テストプログラム Sample1
2進行列を扱うクラスBMatrixを使ったサンプルアプリです。メソッドsetValue()をテストしています。前回から変更はありません。
テストプログラム Sample2
2進行列を扱うクラスBMatrixを使ったサンプルアプリです。1項演算 inv(), tran() と2項演算 or(), and(), diff(), xor() を使っています。前回から変更ありません。
テストプログラム Sample3
2進ベクトルBVectorのサンプルアプリケーションです。1項演算 inv() を使用します。変更ありません。
テストプログラム Sample4
2進ベクトルBVectorと2進行列BMatrixのサンプルアプリケーションです。abs(), mul(), multran()を使用します。変更ありません。
テストプログラム Sample5
囲碁の局面を表すクラスPosで3路盤を扱うサンプルアプリケーションです。3路盤で石を取れるか確認しています。変更ありません。
テストプログラム Sample6
囲碁の局面を表すクラスPosで2路盤を扱うサンプルアプリケーションです。2路盤で、白1子を取るパターン、黒2子、黒1子、白3子を取るパターンをテストします。変更ありません。
応用プログラム CalcWholePos
新規作成しました。対称形や取られる石が残っているものを除いたすべての局面の数を数えるプログラムです。4路盤までは一晩で計算できました。すべての局面に番号pを振っています。
テストプログラム H1V1
隣接関係を表す行列F0を水平のツケH1、垂直のツケV1と自石Eに分解しそれらからナナメやケイマなどの関係を作り出せるか試してみました。変更ありません。
囲碁思考クラス AI
対戦のためのクラスAI(思考ルーチン)です。眼の候補地を多くするように次の手を決めています。変更ありません。
Color強化クラス AltColor
AWTのColorに機能強化したクラスです。変更ありません。
2進行列クラス BMatrix
2進数の行列を表すクラスです。変更ありません。
2進ベクトルクラス BVector
2進数のベクトルを表すクラスです。変更ありません。
AltColorの列挙 EnumColor
AltColorのテストケースで使用するために定義した列挙です。変更ありません。
ゲームの記録のためのクラス GameRecord
棋譜などゲームの記録のためのクラスです。変更ありません。
囲碁盤グラフィックスのクラス GBoard
囲碁盤のグラフィックスを表示するためのクラスです。パスの処理を追加しました。
碁笥グラフィックスのクラス GBowl
碁笥(ごけ)のグラフィックスを表示するためのクラスです。変更ありません。
碁笥の蓋グラフィックスのクラス GLid
碁笥の蓋(ふた)のグラフィックスを表示するためのクラスです。変更ありません。
机グラフィックスのクラス GTable
机のグラフィックスを表示するためのクラスです。2つアプレットを起動するとボタンがずれる問題を解消しました。既定で活き石を(明るく)表示するようにしました。
着手クラス Move
着手を表すクラスです。メソッドisPass(), isResign()を追加しました。
字句解析のためのクラス Parse
棋譜の字句解析のためのクラスです。変更ありません。
囲碁局面クラス Pos
囲碁局面を(b, w, F)で表すクラスです。式の見直しを行いました。パスの仕様を変更しました。
乱空点列のクラス RandomArray
Small BasicのIgoプログラムで使っていた乱空点列をJavaのクラスにしました。もともとモンテカルロのプレイアウトの際の高速化のために作ったものですが、まだGraphGoでは利用していません。変更ありません。
6ベクトルのクラス SixVectors
6つのベクトル(v 活き石, s セキ石, x 死に石, y 目, t 地, m ダメ)を計算するクラスです。併せて眼の候補地(cb, cw)も計算します。活き石の計算は不十分です。セキ石の計算にもに誤りがあるかもしれません。