An Informatio Offering
2015/01/16
4x4 Reversi
›
去年の話ですが、子供の幼稚園にサンタさんがやってきてくれたおもちゃがこの「ひっくりかえるゲーム」。4x4 reversi ですね。 何度か、遊んでみたところ後手が強すぎるのではないかという気がしたのでプログラムを書いて調べてみたところ、最善手進行...
2012/08/04
Forsyth-Edwards Notation
›
Chessの局面の表現として、Forsyth-Edwards Notation(FEN)という記法がある。これは、19世紀にDavid Forsythによって新聞でチェスの棋譜をコンパクトに記事にするために開発されたもので、コンピュータチェスでは、チェスを含むボードゲームの棋譜を...
1 件のコメント:
2012/05/28
Evaluating function and min-max search
›
チェスではカードゲームなどとは異なり、各プレイヤーは次の手を考える上で完全情報 (perfect information)を持っている。 すると、各盤面に対して、次のいずれかがいえる [von Neumann and Morgenstern, 1944] 白が勝ちの盤面であれ...
2012/05/15
more C vs C++ for Chess
›
前回に続いて、CとC++でのチェスのプログラムのスピード比較を行った。前回と違い今回はg++でCのコードをコンパイルしただけでなく、コード全体をclassを使って書きなおした。class使ったら遅くなるんじゃないの?という疑問に答えようというわけだ。 まずはCとほぼ同じ処理を...
2012/05/10
C vs C++ for Chess
›
チェスプログラムを敢えてCで書いてきた。それの理由のひとつは、Shannonの論文中で関数F1, F2のように書かれていることからも、間違いなくオブジェクト指向では書いてないということがある。そもそもAlgol以前かな?しかしそれ以上に、Cの方がC++より速いという神話は本当か?...
2012/05/08
Castling, checkmate and random player
›
駒の動きの最後にキャスリングの実装。キャスリングは、キングを隅に移動することで守り、ルークを中央に出すという意味がある。キャスリングがないころのチェスでは1手ずつ順に駒を動かしてキャスリングと同じ事をしていた。しかし、双方とも、キャスリングをすることが多かったため、ゲームのスピー...
2012/05/05
Knight, Bishop, Rook, Queen, King Move
›
前回のポーンに続いて残りの駒の動き。ポーン以外の駒はキャスリングを除いて状況に応じて動きが変わることもなく、実装は比較的単純。実際、将棋と異なり、どちらを向いているかという白と黒の差もない。 指定された位置へ移動できるかをチェックして可能なら追加するユーティリティ関数を用意。...
›
ホーム
ウェブ バージョンを表示