Home » 将棋ゲーム制作メルマガ » 将棋ゲーム制作メルマガの 1号~最新号 » 作成中の GUI処理

将棋ゲーム制作メルマガ
                       2007/05/04号 第 5号
Eメールアドレス : dokko9@mail.goo.ne.jp
ゲーム趣味PC   : http://www.game4pc.com/
ゲーム趣味X    : http://game4x.seesaa.net/

1. 近況

 最近、将棋ソフトの GUI部分を作りはじめました。
 まだ作業を始めたばかりで、メッセージハンドラ周辺のコードを少し書いてみた程度。

 今回は、作成中の GUI部分について、ほとんど私的メモですが。


2. GUI処理を作る目的

 私が作成する将棋ソフトの思考エンジンは、CSA将棋から DLL経由で呼び出し可能な形式にする予定です。
 ですから、CSA将棋か CSA将棋互換の GUIを利用すれば、私が GUIの処理を書く必要はありません。

 CSA将棋には盤面反転機能はありませんが、CSA互換の GUIでは盤面の反転を実装しており、既存の GUI処理に対して大きな不満はありません。

 それでも、あえて GUI処理をコーディングするのは、プログラミングの現場から 2年ほど離れていた私の「練習」のためです。


3. 機能

 将棋ソフトとして必要最小限の機能を実装する方針です。
 将棋盤としての機能と棋譜の保存・読込。


3.1 将棋盤

 「人間 vs. 人間」「人間 vs. コンピュータ」での対局を可能とします。
 「コンピュータ vs. コンピュータ」については、他ソフトとの対戦機能は用意しない予定。
 でも、思考エンジンのプロトタイプを作った後、他ソフトと戦わせてデータを取るために、LAN対戦用のコードを追加するかもしれません。

 手合いは、平手のみ。早指しの設定あり。
 盤・駒の画像切り替えや表示サイズの変更は行いません。
 対局中断状態では、局面を以前の状態に戻すことを可能とします。

 なお、反則チェックのうち、千日手関連は、コードの実装を後回しにします。
 思考エンジン作成時に千日手のチェック処理を作成するので、移植するつもりです。
 ただし、局面のデータの持ち方が GUI部分と思考エンジンでは異なる可能性があるので、単純な移植にはならないかもしれません。


3.2 棋譜の保存・読込

 csa形式での棋譜の保存・読込を可能とします。


4. 画像

 盤や駒などの画像の自作は、絵心のない人間には面倒な作業です。
 今回は、非商用のプログラムに対してフリーで提供されている素材を利用させていただくことにしました。


5. 終わりに

 GUI部分の作業は短期間で済ませ、思考エンジンの設計に着手したいと考えています。

 他の開発項目では「定跡データ」関連が重要です。
 当面は、棋譜ファイルを読んで序盤の手を探す方針で作業します。
 本格的な定跡データベース機能を作るとしたら、次バージョン以降の作業になると思います。
スポンサード リンク