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


テストプログラム 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路盤を扱うサンプルアプリケーションです。新規作成しました。

ソースプログラム 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 1 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=(1 0 0 0 0 0 1 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=(1 0 1 0 0 0 1 0 1 
)
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 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=(0 1 1 1 0 0 1 0 1 
)
l=(0 0 0 0 0 0 1 0 1 
)
h=(1 1 1 0 0 1 1 0 1 
)
a=(0 0 0 0 0 0 1 0 1 
)
d=(1 1 1 0 0 1 1 0 1 
)
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 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 
1 1 1 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:W

テストプログラム Sample6

囲碁の局面を表すクラスPosで2路盤を扱うサンプルアプリケーションです。新規作成しました。

ソースプログラム 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=(0 1 1 1 
)
w=(1 0 0 1 
)
l=(0 0 0 1 
)
h=(1 1 0 0 
)
a=(0 0 0 1 
)
d=(1 1 0 0 
)
A=
0 0 0 0 
0 0 0 0 
1 0 1 1 
0 0 0 0 
D=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
'O@
'@+
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=(1 1 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 1 1 
1 1 1 1 
1 1 1 1 
b=(0 1 0 1 
)
w=(1 0 1 0 
)
l=(0 0 0 0 
)
h=(1 1 1 1 
)
a=(0 0 0 0 
)
d=(1 1 1 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 1 1 
1 1 1 1 
1 1 1 1 
'O@
'O@
turn:B

(1,2)
#5
F=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
b=(0 1 0 1 
)
w=(1 0 1 0 
)
l=(0 0 0 0 
)
h=(0 0 0 0 
)
a=(0 0 0 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@
'O@
turn:W

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

(1,2)
#7
F=
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
b=(0 1 0 0 
)
w=(1 0 1 0 
)
l=(0 0 0 0 
)
h=(0 0 0 0 
)
a=(0 0 0 0 
)
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@
'OO
turn:W

囲碁局面クラス Pos

今回、新規作成しました。

ソースプログラム Pos.java


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

今回、新規作成しました。

ソースプログラム PosTest.java


2進行列クラス BMatrix

マイナーチェンジしました。

ソースプログラム BMatrix.java


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

変更ありません。

ソースプログラム BMatrixTest.java


2進ベクトルクラス BVector

0か1のスカラ値で初期化するコンストラクタと、同じくスカラとの積をとるメソッドを追加しました。

ソースプログラム BVector.java


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

新しいメソッドのテストを追加しました。

ソースプログラム BVectorTest.java


リンク

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

Valid HTML 4.01 Transitional


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