2014年04月07日

将棋盤のデータ構造

コンピュータ将棋のプログラムを自作するにあたり、まず最初に行うべき作業は、盤と駒のデータ構造を決めることです。

将棋プログラムで行うべき処理の中心は「合法的な指し手の生成」と「指し手の価値の評価」ですが、データ構造が決まらなければ、具体的な処理論理が決まらないからです。

そこで、2014年4月7日(月)の 15時頃から、紙に鉛筆で落書きしながら、将棋盤のデータ構造について検討しました。

C言語で 81マス(9筋9段)の将棋盤を変数として定義する場合、多くの人が最初に思いつくのは 81マス分の大きさの領域を用意する方法ですが、盤外領域を用意してする方法もあります。

81マス分の領域を用意する場合に限っても、将棋盤の座標と変数領域上の位置の対応関係については、様々な方法が考えられます。

また、駒の移動先を求める手段として、近年はビットボードを用いる方法が主流ですが、ビットボードを使わない方法もあります。

私は今回、将棋盤として 81マス分の領域を用意し、ビットボードを用いる方針です。
将棋盤の座標と変数領域上の位置の対応関係については、まだ決めていません。

評価処理を行う場合、将棋盤の横の列(段)のデータが連続している方が処理しやすいので、現時点では、横の列が並ぶ形が有力と考えています。
posted by 将棋ゲーム趣味人 at 16:46| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2008年01月01日

クレジットカード将棋ブログ

『将棋ゲームPC』の下層にブログを設置。
名称は、 クレジットカード将棋ブログ にしました。

今後、私自身の将棋プログラム制作日誌は上述のブログに書いていくつもりです。

本ブログは、世間のニュース記事を読んで考えた「たわごと」のようなものを書き留める目的で存続の予定。
posted by 将棋ゲーム趣味人 at 15:43| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2007年08月28日

思考エンジン開発作業開始

2007年8月27日、約1ヶ月ぶりに VCを起動しました。
空のプロジェクトを新規作成。
プロジェクト名称は、「bls」。
「BL」は “Blue Lightning”の略のつもりで、「S」は言うまでもなく Shogiの頭文字。

27日は、ヘッダファイルに定数を少し入力しただけで終了。

翌日(本稿執筆時点では、今日)、「bls0001」の名称で新規プロジェクト作成。
メインルーチンの入力を始めました。
とりあえず、GUIは『将棋所』を利用する方針なので、USIプロトコル関連の処理については、LesserKaiのソースを流用しています。

ふと、「BL」がボーイズラブの略として使われることが多いことを思い出しました。
そのうちに名称は変えることにします。
posted by 将棋ゲーム趣味人 at 11:22| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2007年06月20日

サプライサイドの将棋戦術

将棋ゲーム制作メルマガ の第14号の執筆をはじめようかという気持ちはあるものの、この数日、別分野のサイト構築作業を優先していて、手をつけていません。

「サプライサイドの将棋戦術」という題名だけは思いついてますが、しょうもない内容のものになりそうです。
posted by 将棋ゲーム趣味人 at 19:11| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2007年06月17日

「将棋ゲーム制作メルマガ」第13号に誤り

久しぶりに自作の将棋プログラムのソースを覗いて、GUI部分の盤面データの形式を変更しました。
盤外領域を定義した盤面データをコメントアウトし、盤面領域なしの盤面データを復活させました。
結局、『CSA将棋』と同じデータ形式に戻ったわけで、少し遠回りした気分。

データ形式の変更作業中、一昨日に配信した「将棋ゲーム制作メルマガ」第13号に誤りがあったことに気がつきました。
CSA将棋の座標系は、「1一」から始まっていて、以下、「2一、3一」の順になっています。
メルマガを書いたときは、左上から始まっているような気がしていました。
次号で修正します。
posted by 将棋ゲーム趣味人 at 11:19| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2007年06月10日

将棋プログラムのインタフェース「USI」

USIとは、将棋の思考エンジンと GUI部分の情報交換について規定するプロトコルで、2007年1月24日付けで発案者の Tord Romstat 氏が原案を The Universal Shogi Interface (USI) として公開しました。
コンピュータチェスの分野では知名度の高い UCIをベースにしているとのことです。

以前、 Takodori's Self-brainstorming How to Promote Shogi Globally というブログに Universal Shogi Interface (USI)についての記事が投稿されたことがあり、USI原案の和訳もあります。
なお、上記記事群は USI関連 のカテゴリに入れられていて、まとめて読むことが出来ます。

上述のブログでの USI関連の記事は、2007年2月13日付けの shogi-lとにおけるやりとり が直近のもの。
その後、「SHOGI-L」というメーリングリスト上で、USI関連の具体的なやりとりはないようです。

現時点で、私は、「CSA将棋」のインタフェースを参考にした独自インタフェースで GUI部分と思考エンジンのやりとりを行おうとしています。
でも、将来は、USIプロトコル対応のインタフェース関数を実装しようかと思っています。
posted by 将棋ゲーム趣味人 at 11:38| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

2007年06月09日

他の将棋プログラム

コンピュータ将棋選手権など、将棋プログラム同士が対戦する大会に出場する場合、好成績を目指すには事前に他の将棋プログラムを研究しておく方がよさそうです。

コンピュータ将棋選手権で最終日に勝ち残るレベルのプログラムについては何らかの対策をしておくべきか?

思考エンジンの開発が未着手の現段階では具体的に計画を練る必要はないのですが、いずれは考えなくてはいけない問題。
posted by 将棋ゲーム趣味人 at 14:16| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。