【JavaShogiLib 取扱説明書】 2005年 9月 2日 森岡 祐一 2005年12月20日 修正 ■ はじめに JavaShogiLib(以下、本ライブラリと呼称)は、Java言語を用いて将棋ソフトウェアを作成する為のライブラリです。 ■ 使用環境 Java2 Standard Edition 5.0が動作する環境で動作します。 動作確認はWindows XP Professional上のSun J2SDK 1.5.0を用いて行っています。 ■ 概要 以下に、本ライブラリの概要を示します。 詳細に関しては、docディレクトリ配下にAPIリファレンスがありますので、そちらを参照して下さい。 ・Kyokumen 局面(盤面・持駒・手番)を表すクラス。 int getMasuInfo( int x, int y ) x筋y段のマスの情報を取得します。(x,yは0以上10以下です。) そのマスに駒が無い場合は定数EMPTYを返します。 そのマスが盤外ならば定数EDGEを返します。 そのマスに駒があれば、駒の情報を返します。 駒の情報は、KomaUtilクラスの定数を用いて表します。 例えば、先手の歩はKomaUtil.HU、後手の龍はKomaUtil.HISYA + KomaUtil.NARI + KomaUtil.GOTEです。 int getMochigomaNumber( boolean sente, int komaType ) 引数senteで指定した側のプレイヤーの持ち駒の数を取得します。 駒の種類はKomaUtilクラスの定数を用いて引数komaTypeで指定します。 boolean getTeban() 現在の局面が先手の手番ならtrueを、後手の手番ならfalseを返します。 List getApplicableTeList() 現在の局面で指せる合法手のリストを返します。 千日手になる手及び打ち歩詰めになる手も返しますので、別途チェックして下さい。 void apply( Te te ) 引数で指定した手を指し、それに従って盤面・持ち駒・手番の情報を更新します。 void rollback() 直前にapplyメソッドを用いて指した手を取り消します。 本メソッドは、対局開始時の状態に戻るまで、何度でも呼び出し可能です。 ・FixedKyokumen 局面(盤面・持駒・手番)を表す変更不可能なクラス。 FixedKyokumen( Kyokumen kyokumen ) 引数kyokumenで指定した局面を表す、変更不可能なインスタンスを生成します。 局面の状態をMap等に保存する場合は、本コンストラクタを使用して生成したインスタンスを保存して下さい。 (※ Kyokumenクラスはapply及びrollbackメソッドを呼び出すと内部の情報が変更されるので、 局面の情報を保存するのには不向きです。) ・Te 手を表すクラス。 アクセッサメソッドを定義していないので、各種フィールドに直接アクセスして下さい。 フィールドkomaInfoに保存される情報は、Kyokumen#getMasuInfo(int,int)メソッドの返り値と同じ形式です。 ・KomaUtil 駒関連のユーティリティーメソッド及び定数を提供するクラス。 駒の種類を表す定数と、各種ユーティリティーメソッドを定義してあります。 ■ 再配布について 本ライブラリの再配布及び本ライブラリを改造したものの配布は、使用許諾事項に従って行ってください。 使用許諾事項にも書いてありますが、バグフィックスのみを行ったものの配布は許可しません。 もしバグを発見された場合は、バグの発生条件及び可能であればバグフィックスしたコードを明記した上で、作者までご連絡下さい。 バグフィックス版の再配布を許可しない事は、他のユーザの利便性を考慮しての事ですので、ご協力をお願いします。 ■ 使用許諾事項 本ライブラリの著作権は作者(森岡 祐一)が保有します。 本ライブラリを使用した事によるいかなる損害に関しても、作者は責任を負いません。 本ライブラリに関連する問い合わせに関して、作者は回答する義務を負いません。 本ライブラリのアップデート・バグ修正に関して、作者はいかなる義務も負いません。 非商用での本ライブラリの再配布を許可します。 商用での本ライブラリの再配布は、作者まで事前に相談して下さい。 本ライブラリを改造したものの配布は、ライセンスを改変しない限り許可します。ただし、バグフィックスのみを行ったものに限り、配布を許可しません。 自分で作成したソフトウェア等に本ライブラリを同梱して再配布する事が出来ます。ただし、その場合は本ライブラリを使用している事を明記した上で、本ライブラリのライセンスを明確にして下さい。 本ライブラリを使用したソフトウェアを用いて、世界コンピュータ選手権等の各種大会に参加する事が出来ます。 ■ 修正履歴 2005年12月20日 JavaShogiLib 1.0.3でのバグフィックスに対応し、Kyokumen.getApplicableTeList()が打ち歩詰めになる手も生成する事を追記。