碁がほんとうに難しいのは、本当に難しいからなんだ。
自分の手版だったとしよう。
将棋の場合升目は9*9しかないから、手持ちの駒があったとしても打てる手順は81通り
2手先を読もうと思ったらどんなに多く見積もっても81*81の組み合わせの中に納まる。
3手先も81*81*81の組み合わせだ。
実際は駒は進める方向が決まっているし、両手合わせて40も駒があるので置ける場所がほとんど決まっている。
ゲームスタートの時だけで考えたら歩1*9通り、京1*2、桂0*2、銀3*2、金3*2、玉3*1、角0*1、飛8*1
わずか32パターンしかない。
こんな風にずっと少ない組み合わせを追うだけで数手先まで読むことができる。
しかも殆どの場合、良手、悪手は数手先まで読めば結論が得られる。
定石に外れた良手というのはほとんど存在しない。
一方、碁は、19路 19*19、361マスある。
2手先の可能性は361*361だし、3手先を読もうとしたら361*361*361だ。
しかも石は、ほぼ、どこにおいてもいい。
碁にも定石はあるが、細かな番目の生き死ににこだわっていると大きく地所をとられてしまう。
悪手だったと思っていた手が20手先に突如活きてくることがある。
将棋は20手先まで読めればほぼ負けることは無い。
碁は20手先に期待して布石をおいていく必要がある。
全通りを読もうとしたら361^20。
碁は確率的にも読みきるのは現代のスーパーコンピューターにも不可能だ。
できるだけ黄金率を用いて絵を描きなさいという右脳的作業に似ている。
そんなわけで、ひさしぶりにパチリ。
001手目 7七黒 987654321 ┏┯┯┯┯┯┯┯┓一 黒アゲハマ 白*0 ┠┼┼┼┼┼┼┼┨二 ┠┼┼┼┼┼┼┼┨三 ┠┼┼┼┼┼┼┼┨四 ┠┼┼┼┼┼┼┼┨五 ┠┼┼┼┼┼┼┼┨六 ┠┼●┼┼┼┼┼┨七 ┠┼┼┼┼┼┼┼┨八 ┗┷┷┷┷┷┷┷┛九 白アゲハマ 黒*0
どうすべぇ…?
情報系の学部の学生です。 大学でプログラミングの演習をしています。(言語はJavaです) if,for,whileとかの制御構文は理解し、クラス、メソッドや継承やインターフェイスといったオブジェ...
囲碁漫画「ヒカルの碁」の単行本のおまけページに(ヒカルの碁のゲームが出たという話題) 「囲碁のゲームはまだ発展途上で、コンピューターの一手はすごく時間がかかる。何分も待...
碁がほんとうに難しいのは、本当に難しいからなんだ。 自分の手版だったとしよう。 将棋の場合升目は9*9しかないから、手持ちの駒があったとしても打てる手順は81通り 2手先を読もう...
考慮時間の割りに強いプログラムを組むのはそりゃハチャメチャに難しい。しかしそうでなくても碁は石の生死判定とかでいろいろ厄介だと思う。ファミコン黎明期の碁のソフトは石の生...
プログラムには書き方がある。その書き方とは、規模が線形で大きくなっても開発を続けるコストも(償却)線形でしか大きくならないものの事をいう。 設計にも同じ事が言えるし、極...
ボードゲームのプログラムって結構難しい部類に入るし、囲碁なんてその中でも特に難しいものだから、そりゃ書けなくてもしょうがない。 ああいうのの難しさって、規模というよりは...
いいとは思うけどね。だけどそれに集中することが大切かと。まあ、囲碁のプログラムは果たしてプログラムをするに足る対象だろうか、などの問題もあるけど、まずは目的を定めること...
元情報系の学部の学生です(現在は大学院生です)。 >みなさんは、どうやって大きめのプログラムが書けるようになりましたか? ということなので、私のプログラミング変遷を書いて...
問題分割の概念が必要なんじゃないか。 囲碁のプログラム、ととらえるとすっごい大きく見えるけど、これを 囲碁の画面を描くプログラム 指定した位置に石を置くプログラム 囲碁...
プログラムを書けるということはプログラムを設計できるという意味じゃない。ルールを知っているのと囲碁を打てるのが違うように。 ルールを覚えたら、次は定石を覚えないといけな...
Javaスクールの危険 とりあえずSICPでも読めば?