
「 ↑ 上図 A1、 壁際の眼を潰してしまう x についてだが、」
「 ↑ 壁は スペース ではないから、 石を置けない条件1 に当てはまらなくない?」

「 朝8時から コンピュータ囲碁プログラミングか。 廃人みたいだな」

「 条件1は 壁なんか考慮してないから それでいいのよ」

「 きふわらべのベースになっている GoGo のソースを見てみようぜ?」

「 ↑ 壁際が怪しいな。 GoGoのベースになっている講習会のサンプルも見てみるかだぜ」

「 ↑ 講習会も同じソースかだぜ。
晩に見直すかな」
そして晩

「 うぃーっ 酔いが回ってきたぜ~」

「 飲んで帰ってくるの わらう」

「 石を置けないケース、 石を置くと損するのが明らかだから置かないケースを
洗い出したらいいんじゃない?」

「 ↑ まず、 石を置かない手が1つだけある。
PASS (パス)だぜ。
人間の囲碁で 『パス!』 とかいう場面は 石を置いたら損するときだけで、
中盤の途中で 『パス!』 とか言ったら 度胸あるから 気を付けろだぜ」

「 囲碁で 『パス!』 とか言ってるやつ見たことないが?」

「 酔っぱらっていて 非実在囲碁でも 見てんのよ」

「 ↑ 次に 石を置いていい可能性があるのは 縦線と横線が くっついているところだぜ。
それを
交点 (こうてん)と言う。
特に、石を置いていない交点のことを 空点 (くうてん)と言う」

「 隣の盤に打っていいのか?」

「 まず 盤を間違えないようにしましょう」

「 ↑ 黒石、または 白石が置いてあったなら、それは単に
石 (いし) だぜ。
石の上に 石を置くのは 反則だぜ」

「 石の上に 石を置けたら 尊敬する」

「 ↑ 上図 i, ii, iii は 黒石を置けないぜ」

「 プログラム的には どう説明すんの?」

「 (1)その石を置いて 取れる石が 0個で、
(2) 置いた石の4方向に空点は 0個で、
(3) 石を置く前の盤で、石を置こうとしている空点に隣接する自分の石の色で
呼吸点が2以上のもの、というものが 0個
なら、石を置けないぜ」

「 ↑ 石の置けない条件その1、 合ってるぜ」

「 ぐぬぬぬぬぬ!」

「 壁が崩壊してんじゃないの?」

「 …………」

「 はい! ここで クイズだぜ!」

「 このブログを ここまで読んだやつなら 答え 分ってるじゃないか」

「 こんなブログ どうでもいいんだぜ!」

「 答えは……」

「 左の壁が無いから だぜ」

「 なんで 左の壁だけ 無いの?」

「 それも 原因を突き止めている。
説明しよう」

「 ↑ これは ゲームの設定ファイルだが、このファイルの内容は有っているぜ」

「 0 が空点で、 3 が壁だろ。
これを読み込めば バカでも 盤を初期化完了だぜ」

「 ここで 疑問手マークが付くのが、
数字の配列ではなく 複数行文字列 で記述されている、ということだぜ」

「 TOML形式で 調子に乗るから……」

「 ↑ 上図上側が カンマ区切りの文字列を 数の配列に変換するプログラム、
下側が その結果を出力したものだぜ。
なんか
長い空白 が先頭に入っているが、設定ファイルの左側の空白(インデント)が
そのまま入っている」

「 なんか その 長い空白 気になるな……」

「 ↑ 3 が 3 のままのところと、
3 が 0 のところが あらない?」

「 文字列の "3" は、数の 3 へ変換されるぜ。
文字列の "改行 インデント 3" は 0 へ変換されるぜ」

「 わらう」

「 ↑ 正しくは strings.Trim(s, " ") ではなく、 strings.TrimSpace(s) を使うことだったんだぜ」

「 5文字 打ち間違えただけで 数十時間 飛んでったの わらう」

「 左辺にくっついた取られる石が取られないバグは解消したぜ」

「 お父ん、囲碁やろーぜ?」

「 よっしゃ!」

「 はい、パス」

「 えっ! なんで パスしてくるんだぜ?
投了? 勝ち宣言?」

「 お父んが勝ってると思ったら パスし返してこいだぜ」

「 どっちが勝ってんの?」

「 どっちにしろ わたしも置くとこないんで パスで」

「 ワラちゃんの勝ちねえ」

「 やったぜ!」

「 きふわるべを除けば、 きふわらべが わたしに勝つの 初めてなの わらう」