56将棋開発ブログ

5×6マスのミニ将棋、「56将棋」で遊べるものをいろいろ開発してます。

将棋プログラムのつくりかた(C++)  ~ 駒の内部表現 ~

【2015/11/28 追記】
当時、プログラミング超初心者のわたしが勢いで始めたものの、完結させずに放置してしまっています。すみません。
コンピュータ将棋のアルゴリズム HTML版のリンクを貼っておくので、こちらを参考にしてください。

コンピュータ将棋のアルゴリズム


今回から、C++のコードを貼りながら、

こんな感じでプログラムをつくっています、という記事を書いていきたいと思います。


"Hellow,World"から4ヶ月のただのあほが書いているコードを貼るというのは、

なかなかに恥ずかしいですが、

そういうブログなのでしょうがないですね。


プログラムのかなりの部分は、

将棋プログラム「うさぴょん」の作者様のページ(ページ移転のお知らせ

を参考にさせていただいているので、

ほとんどこのページのコードの解説みたいになるかもしれません。

「わざわざあほの解説なんざ聞きたかねーや!」というかたは、

ブラウザバックしていただけると大変たすかります。


では、さっそく。


gist8906899


駒の内部表現ですが、

歩 ~ 王 を 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 オセロ 完全解析
を読んでいただいたほうがいいでしょう。


次回はたぶん、「手の内部表現」になると思います。

それでは。