グラフ理論を用いた囲碁 GraphGo v0.5


テストプログラム Sample1

2進行列を扱うクラスBMatrixを使ったサンプルアプリです。前回から変更はありません。

ソースプログラム Sample1.java


テストプログラム Sample2

2進行列を扱うクラスBMatrixを使ったサンプルアプリです。前回から変更ありません。

ソースプログラム Sample2.java


テストプログラム Sample3

2進ベクトルBVectorのサンプルアプリケーションです。変更ありません。

ソースプログラム Sample3.java


テストプログラム Sample4

2進ベクトルBVectorと2進行列BMatrixのサンプルアプリケーションです。変更ありません。

ソースプログラム Sample4.java


テストプログラム Sample5

囲碁の局面を表すクラスPosで3路盤を扱うサンプルアプリケーションです。クラスPosを修正し実行結果がは正しくなりました。

ソースプログラム Sample5.java

実行結果

#0
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 0 1 1 1 0 1 0 
0 0 1 0 1 1 0 0 1 
0 0 0 1 0 0 1 1 0 
0 0 0 0 1 0 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 1 1 1 1 1 1 1 1 
)
w'=(1 1 1 1 1 1 1 1 1 
)
l=(1 1 1 1 1 1 1 1 1 
)
h=(0 0 0 0 0 0 0 0 0 
)
'+++
'+++
'+++
turn:B

(2,2)
#1
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 0 1 1 1 0 1 0 
0 0 1 0 1 1 0 0 1 
0 0 0 1 0 0 1 1 0 
0 0 0 0 1 0 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 1 1 1 1 1 1 1 1 
)
w'=(1 1 1 1 0 1 1 1 1 
)
l=(1 1 1 1 0 1 1 1 1 
)
h=(0 0 0 0 0 0 0 0 0 
)
a=(1 1 1 1 0 1 1 1 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 1 0 1 1 1 0 1 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+++
'+@+
'+++
turn:W

(2,1)
#2
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 0 1 1 1 0 1 0 
0 0 1 0 1 1 0 0 1 
0 0 0 1 0 0 1 1 0 
0 0 0 0 1 0 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 1 1 0 1 1 1 1 1 
)
w'=(1 1 1 1 0 1 1 1 1 
)
l=(1 1 1 0 0 1 1 1 1 
)
h=(0 0 0 0 0 0 0 0 0 
)
a=(1 1 1 0 0 1 1 1 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
1 0 0 1 1 0 1 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+++
'O@+
'+++
turn:B

(3,2)
#3
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 0 1 1 1 1 1 1 
0 0 1 0 1 1 0 0 1 
0 0 0 1 0 0 1 1 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 1 1 0 1 1 1 1 1 
)
w'=(1 1 1 1 0 1 1 0 1 
)
l=(1 1 1 0 0 1 1 0 1 
)
h=(0 0 0 0 0 0 0 0 0 
)
a=(1 1 1 0 0 1 1 0 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+++
'O@+
'+@+
turn:W

(1,2)
#4
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 1 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 0 1 1 1 1 1 1 
0 0 1 0 1 1 0 0 1 
0 0 0 1 0 0 1 1 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 0 1 0 1 1 1 1 1 
)
w'=(1 1 1 1 0 1 1 0 1 
)
l=(1 0 1 0 0 1 1 0 1 
)
h=(0 0 0 0 0 0 1 0 0 
)
a=(1 0 1 0 0 1 1 0 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
1 1 1 0 1 0 0 1 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+O+
'O@+
'+@+
turn:B

(2,3)
#5
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 0 0 1 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 1 1 1 1 1 1 1 
0 1 1 1 1 1 0 1 1 
0 0 0 1 0 0 1 1 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 0 1 0 1 1 1 1 1 
)
w'=(1 1 1 1 0 0 1 0 1 
)
l=(1 0 1 0 0 0 1 0 1 
)
h=(1 0 0 0 0 0 1 0 0 
)
a=(1 0 1 0 0 0 1 0 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 1 1 1 1 1 0 1 1 
0 1 1 1 1 1 0 1 1 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+O+
'O@@
'+@+
turn:W

(1,3)
#6
F'=
1 1 0 1 0 0 0 0 0 
1 1 1 0 1 1 0 1 0 
1 1 1 0 1 1 0 1 0 
1 0 0 1 1 0 1 0 0 
0 1 1 1 1 1 1 1 1 
0 1 1 1 1 1 0 1 1 
0 0 0 1 0 0 1 1 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 0 0 0 1 1 1 1 1 
)
w'=(1 1 1 1 0 0 1 0 1 
)
l=(1 0 0 0 0 0 1 0 1 
)
h=(1 0 1 0 0 0 1 0 1 
)
a=(1 0 0 0 0 0 1 0 1 
)
d=(0 0 0 0 0 0 0 0 0 
)
A=
0 0 0 0 0 0 0 0 0 
1 1 1 0 1 1 0 1 0 
1 1 1 0 1 1 0 1 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'+OO
'O@@
'+@+
turn:B

(1,1)
#7
F'=
1 1 1 1 0 0 0 0 0 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 0 0 1 1 0 1 0 0 
0 1 1 1 1 1 1 1 1 
0 1 1 1 1 1 0 1 1 
0 0 0 1 0 0 1 1 0 
0 1 0 1 1 1 1 1 1 
0 0 0 0 0 1 0 1 1 
b'=(1 1 1 0 1 1 1 1 1 
)
w'=(0 1 1 1 0 0 1 0 1 
)
l=(0 1 1 0 0 0 1 0 1 
)
h=(1 1 1 0 0 1 1 0 1 
)
a=(0 1 1 0 0 0 1 0 1 
)
d=(0 1 1 0 0 0 0 0 0 
)
A=
1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
D=
1 1 1 1 1 1 1 1 1 
1 1 1 0 1 0 0 0 0 
0 1 1 0 0 1 0 0 0 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
'@++
'O@@
'+@+
turn:W

テストプログラム Sample6

囲碁の局面を表すクラスPosで2路盤を扱うサンプルアプリケーションです。クラスPosを修正し実行結果がは正しくなりました。

ソースプログラム Sample6.java

実行結果

3手:白1子を取るパターン
#0
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 1 1 1 
)
l=(1 1 1 1 
)
h=(0 0 0 0 
)
'++
'++
turn:B

(1,2)
#1
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 0 1 1 
)
l=(1 0 1 1 
)
h=(0 0 0 0 
)
a=(1 0 1 1 
)
d=(0 0 0 0 
)
A=
0 0 0 0 
1 1 0 1 
0 0 0 0 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'+@
'++
turn:W

(1,1)
#2
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(0 1 1 1 
)
w'=(1 0 1 1 
)
l=(0 0 1 1 
)
h=(0 0 0 0 
)
a=(0 0 1 1 
)
d=(0 0 0 0 
)
A=
1 1 1 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'O@
'++
turn:B

(2,1)
#3
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 0 0 1 
)
l=(1 0 0 1 
)
h=(1 1 0 0 
)
a=(1 0 0 1 
)
d=(1 0 0 0 
)
A=
0 0 0 0 
0 0 0 0 
1 0 1 1 
0 0 0 0 
D=
1 1 1 0 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'+@
'@+
turn:W

7手:黒2子、白3子を取るパターン
#0
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 1 1 1 
)
l=(1 1 1 1 
)
h=(0 0 0 0 
)
'++
'++
turn:B

(1,2)
#1
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 0 1 1 
)
l=(1 0 1 1 
)
h=(0 0 0 0 
)
a=(1 0 1 1 
)
d=(0 0 0 0 
)
A=
0 0 0 0 
1 1 0 1 
0 0 0 0 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'+@
'++
turn:W

(1,1)
#2
F'=
1 1 1 0 
1 1 0 1 
1 0 1 1 
0 1 1 1 
b'=(0 1 1 1 
)
w'=(1 0 1 1 
)
l=(0 0 1 1 
)
h=(0 0 0 0 
)
a=(0 0 1 1 
)
d=(0 0 0 0 
)
A=
1 1 1 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'O@
'++
turn:B

(2,2)
#3
F'=
1 1 1 0 
1 1 1 1 
1 0 1 1 
1 1 1 1 
b'=(0 1 1 1 
)
w'=(1 0 1 0 
)
l=(0 0 1 0 
)
h=(1 1 0 0 
)
a=(0 0 1 0 
)
d=(0 0 0 0 
)
A=
0 0 0 0 
1 1 1 1 
0 0 0 0 
1 1 1 1 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'O@
'+@
turn:W

(2,1)
#4
F'=
1 1 1 1 
1 1 0 1 
1 1 1 1 
0 1 1 1 
b'=(0 1 0 1 
)
w'=(1 1 1 1 
)
l=(0 1 0 1 
)
h=(1 1 1 1 
)
a=(0 1 0 1 
)
d=(0 1 0 1 
)
A=
1 1 1 1 
0 0 0 0 
1 1 1 1 
0 0 0 0 
D=
1 1 1 1 
1 1 0 1 
1 1 1 1 
0 1 1 1 
'O+
'O+
turn:B

(1,2)
#5
F'=
1 1 1 1 
1 1 1 1 
1 1 1 1 
0 1 1 1 
b'=(0 1 0 1 
)
w'=(1 0 1 1 
)
l=(0 0 0 1 
)
h=(0 0 0 0 
)
a=(0 0 0 1 
)
d=(0 0 0 0 
)
A=
0 0 0 0 
1 1 1 1 
0 0 0 0 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'O@
'O+
turn:W

(2,2)
#6
F'=
1 1 1 1 
1 1 0 1 
1 1 1 1 
1 1 1 1 
b'=(0 1 0 0 
)
w'=(1 1 1 1 
)
l=(0 1 0 0 
)
h=(1 1 1 1 
)
a=(0 1 0 0 
)
d=(0 1 0 0 
)
A=
0 0 0 0 
0 0 0 0 
1 1 1 1 
1 1 1 1 
D=
1 1 1 1 
1 1 0 1 
1 1 1 1 
1 1 1 1 
'O+
'OO
turn:B

(1,2)
#7
F'=
1 1 1 0 
1 1 1 1 
1 0 1 1 
0 1 1 1 
b'=(1 1 1 1 
)
w'=(1 0 1 1 
)
l=(1 0 1 1 
)
h=(1 1 1 1 
)
a=(1 0 1 1 
)
d=(1 0 1 1 
)
A=
0 0 0 0 
1 1 1 1 
0 0 0 0 
0 0 0 0 
D=
1 1 1 0 
1 1 1 1 
1 0 1 1 
0 1 1 1 
'+@
'++
turn:W

囲碁局面クラス Pos

囲碁局面を(b, w, F)で表すクラスです。ベクトルdの計算と出力のバグを改修しました。

ソースプログラム Pos.java


囲碁局面クラス JUnitテストセット

クラスPosのテストケースです。originのバグを修正しました。

ソースプログラム PosTest.java


2進行列クラス BMatrix

2進数の行列を表すクラスです。変更ありません。

ソースプログラム BMatrix.java


2進行列クラス JUnitテストセット

クラスBMatrixTestのテストケースです。変更ありません。

ソースプログラム BMatrixTest.java


2進ベクトルクラス BVector

2進数のベクトルを表すクラスです。変更ありません。

ソースプログラム BVector.java


2進ベクトルクラス JUnitテストセット

クラスBVectorのテストケースです。変更ありません。

ソースプログラム BVectorTest.java


リンク

  1. グラフ理論を用いた囲碁 GraphGo 開発キット v0.5 リファレンス 2012/02/10
  2. 「作って遊ぼうJavaアプレット」目次
  3. ブログ「たかはしのんき年月記」

Valid HTML 4.01 Transitional


Copyright © 2012 たかはしのんき. All rights reserved.