5.Example
★ 黒石に囲まれている白3ヶの石を最後に打った黒石(4,4)で取り上げる過程について説明する。 |
|
1. 2. |
Fig.8の最後に打たれた石の右側(5,4)を調べる。右には石はない。 左側(3,4)を調べると、相手の石(即ち白石)がある。そこでこの白石の座標をメモリ(配列)に保存する(Fig.9参照)。 |
|||
|
(1) (2) (3) (4) |
白石にぶつかったので、その白石(3,4)に座標を移して周辺を調べる。右は黒石なので関係ない。 左側(2,4)も黒石なので次に進む。 上(3,3)にまた白石があったので、その座標をメモリに保存する(Fig.11参照) 下(3,5)は黒石だから関係なし。 |
||||
|
(1) (2) (3) (4) |
更に座標を上の白石(3,3)に移して調べる。右側(4,3)にまた自分の白石(黒から見て相手側の石)があったので、その座標を同じくメモリに保存する(Fig.13)参照。 左(2,3)は黒石。 上(3,2)も黒石。 下(3,4)には白石があるが、メモリをチェックしてみるとそれは既に保存されている同じ石なので関係ない。 |
|
(1) (2) (3) (4) |
自分の石(囲んでいる黒から見た場合は相手側の石)にぶつかった時は更に座標をその場所に移して周辺を調べる。周辺が線の時は囲まれていないのであるからこのルーチンを抜け出るし、相手(黒)の石であれば囲まれているかいないかの判定を行う。 (4,3)の白石の右は黒石 左(3,3)は自分側の石(白)なのでメモリ(H[2],H[3])に保存するが、既に保存されているので、無視して次へ進む。 上(4,2)は黒石 下(4,4)も黒石 |
|
2-1 |
消去ルーチンを実行 Fig.14で白石が囲まれているという判定が得られたので白石を碁盤から消去する。 碁盤の色と石の円の直径を同じにし、Fig.13のメモリから夫々の数値を読み出し座標位置を与えればよい。 右図にその状態を示す。 次に夫々の座標を中心にして縦横に黒い線を描かせればよい。 |
|
3. 4. |
Fig.8で左側(3,4)を調べた際に相手の石(白)に接触したので、その石の状態を調べるために、更にその先へと進んだが、(5,3)に打った黒石により囲んでいる石を消去したので、もとのルーチンに戻り、上(4,3)を調べる。既に白石は消去されてその位置には線が描かれているから次へ進む。 下(4,5)は線である。 |
|
(WINGの棋譜再現、印刷) | (この項 Example) |