将棋プログラムのつくりかた(C++) ~ 駒の内部表現 ~
【2015/11/28 追記】
当時、プログラミング超初心者のわたしが勢いで始めたものの、完結させずに放置してしまっています。すみません。
コンピュータ将棋のアルゴリズム HTML版のリンクを貼っておくので、こちらを参考にしてください。
今回から、C++のコードを貼りながら、
こんな感じでプログラムをつくっています、という記事を書いていきたいと思います。
"Hellow,World"から4ヶ月のただのあほが書いているコードを貼るというのは、
なかなかに恥ずかしいですが、
そういうブログなのでしょうがないですね。
プログラムのかなりの部分は、
将棋プログラム「うさぴょん」の作者様のページ(ページ移転のお知らせ)
を参考にさせていただいているので、
ほとんどこのページのコードの解説みたいになるかもしれません。
「わざわざあほの解説なんざ聞きたかねーや!」というかたは、
ブラウザバックしていただけると大変たすかります。
では、さっそく。
駒の内部表現ですが、
歩 ~ 王 を 1 ~ 8 の数字で表します。
成ると +8 、敵の駒は +16 します。
これが最もやさしい表現だと思われます。
もっとスマートな方法を知りたいというかたは、
こちらのページ
http://shogi.yaneu.com/index.php?GPS%BE%AD%B4%FD%A4%CE%A5%BD%A1%BC%A5%B9%A5%EC%A5%D3%A5%E5%A1%BC
へどうぞ。
ほかの方法としては、bitboardというのがあるみたいです。
駒の種類ごと、盤のマスごとに、駒のあるなしをbitであらわす方法のようです。
(なんか日本語下手ですね)
あほが説明するよりも、
こちらのページ
ビットボードを用いた 4x4 オセロ 完全解析
を読んでいただいたほうがいいでしょう。
次回はたぶん、「手の内部表現」になると思います。
それでは。