3,3,3,3,3,3,3,3,3,3,3
3,0,0,0,0,0,1,2,2,0,3
3,0,0,0,1,0,1,1,2,0,3
3,0,1,1,0,0,1,2,2,0,3
3,0,1,2,2,2,1,0,0,0,3
3,0,2,0,0,1,2,2,2,0,3
3,0,0,2,0,1,1,2,1,0,3
3,0,0,2,1,0,2,1,2,0,3
3,0,2,1,1,0,1,1,2,0,3
3,0,1,2,0,0,0,0,1,0,3
3,3,3,3,3,3,3,3,3,3,3 という具合になります。
何故、黒石と白石を1と2にするかというと、この石の相手の石が...というときに
wisi = isi ^ 3; //(C++)
wisi := isi xor 3; //(Delphi)
と簡単にコーディングできるからです。
何故回りに辺=3を置くかというと、これがないとわざわざ
if ( x<1 or y<1 or 19< x or 19< y ) ;
としなければならないからです。辺があれば
if ( ban[x][y] = 3 ) ;
だけで済みます。次に重要な連と群の認識の説明をしましょう。
上左図を想定すると、上右図が連です。番号は連の識別番号です。
1つの連には次のような情報があります。
連識別番号、石の色、石の数、石の位置、縦横の接触している状態の数、縦横に接触している連、同じ群と見なされる回りの連、どの群に含まれているか、接触している空点の位置。
連番号=04を例に取って説明しましょう。
連識別番号:4
石の色:黒
石の数:3
石の位置:[2,3][3,3][2,4]
縦横の接触している状態の数:白石=2,空点=5
縦横に接触している連:05,06,19
同じ群と見なされる回りの連:03
どの群に含まれているか:群番号
接触している空点の位置:[2,2][3,2][4,3][1,3][1,4]
連オブジェクトの作り方
上左図を想定すると、上中図が連で、上右図が群です。番号は群の識別番号です。
同じ番号が同じ群という事になります。1つの群には次のような情報があります。
群識別番号、石の色、石の数、石の位置、群含まれている連、群に含まれている地、群から近い点とその関係、呼吸点、死活、隣接している群。
群番号=01を例に取って説明しましょう。
群識別番号:01石の色:黒
石の数:9
石の位置:[6,1][4,2][6,2][7,2][2,3][3,3][6,3][6,4][2,4]
群含まれている連:1,3,4
死活:生き
隣接している群:2,3
群を作る為には、その前に石と石の関係情報を作る必要があります。
石と石が青または黄色の線で結ばれている石を同じ群とします。
赤の線は関係はあるけれども、同じ群とはみなされません。
黄色の線は同じ群であるけれども、群が分断される可能性があるのでチェックする必要があるという意味です。
これは死活を考慮していませんが、死活を考慮すると、キリチガイの赤い線が青い線になるわけです。死活を考える為には、群が必要で、群を作る為には石と石の関係が必要です。ですからこの図は死活と考慮する前の第一段階の石と石との関係になります。
石と石の関係は次のように分類されます。
コスミ、1間、桂馬、ハザマ、2間、大桂馬、3間、大々桂馬
●地オブジェクト
黒石に囲まれた空地を黒地、白石に囲まれた空地を白地となります。同じ色の地が縦横隣接している1つ固まりを地オブジェクトといいます。地オブジェクトは群オブジェクトの部品になり、群の死活に役立つものになります。この空地が黒石に囲まれているという認識をどうすればいいでしょう?まず、空地と石の関係情報を作成します。
続く...
線が結ばれている空点と石には関係があります。
座標[2,4]の位置を考えてみましょう。
例えば、空点[2,4]は黒石[2,2]と一間の関係があります。
空点[2,4]は白石[5,4]とはなにも関係がない事になります。
左図は黒石と関係をいくつか持ち、白石とは1つも関係を持っていないので黒地と判断します。座標[2,6]に白石があるとどうでしょう?
右図は黒石と関係をいくつか持ち、白石とも1つも関係を持っているのでどちらの地でもないと判断します。つまり片方の石のみの関係がある場合にのみ地と判断されます。但し、死石がない場合に限ります。
全ての空地に対し、黒地であるか、白地であるか調べます。すると同じ色の地で連続している領域ができます。これが地オブジェクトです。
紫の濃い部分は完全に黒地で、薄い部分は地と地でない部分の境界線で黒から打てば黒地になるが、白から打つと地でなくなっていまう可能性があります。どちらの地も地オブジェクトの要素として生成します。地オブジェクトの作り方は連オブジェクトと同じです。
1つの地には次のような情報があります。
地識別番号、地の色(黒地or白地)、含まれている群識別番号、地の数、地の位置、欠目、中石の存在、境界線、眼数。
GORO HomePageに戻る