(57)【要約】      （修正有）【課題】将棋やチェスを指すソフトウェアの指し手を真似しても、上級者に成り済ますことができないコンピュータゲームプログラムを提供する。【解決手段】従来の将棋やチェスでは、ある駒Ａの移動可能なマスに敵の駒Ｂがあれば、駒Ａで駒Ｂを取って駒Ｂがあったマスへ駒Ａを移動させることができるが、本発明ではコンピュータを利用して対戦できるようにソフトウェア化する際に、一つ一つの駒に生命力、攻撃力、攻撃間隔、防御力、移動待ち時間、復活待ち時間等のパラメータを付与しておき、敵の駒の生命力がゼロ以下でなければ、敵の駒を取って移動することができないようにするなど、コンピュータ利用ならではの機能を将棋やチェスに付加する。【選択図】図７
2018187085.tif 000002
【特許請求の範囲】
【請求項１】
将棋やチェス及びそれらに類する盤上ゲームをコンピュータを利用して対戦できるようにソフトウェア化する際に、各々の駒に生命力パラメータを付与し、尚且つ駒の状態（移動及び攻撃可能な活性状態／移動及び攻撃不可能な非活性状態）及び座標をメモリに保持しておき、プレーヤーが操作するコンピュータ端末によって駒の移動座標が指示された時は、駒の移動可不可を判定して、移動可能であれば駒の座標を更新して駒を移動させ、各々の駒が次の手で移動可能な座標に敵の駒が活性状態で存在する場合は、味方の駒からビームやミサイルや弾丸、手裏剣等の飛び道具をプレーヤーが操作するコンピュータ端末のディスプレイで撃ち出す表示を行って敵の駒を攻撃して、敵の駒の生命力を減少させていき、生命力がゼロ以下になった場合には、その駒を非活性状態に遷移させて、味方の駒が移動可能な座標に非活性状態になった敵の駒がある場合に限り、非活性状態になった敵の駒を奪える特徴をもつコンピュータゲームプログラム。
【請求項２】
請求項１における駒に復活待ち時間パラメータを追加して、ある駒が攻撃されて生命力がゼロ以下になった直後からコンピュータのタイマーを利用して経過時間を計り、復活待ち時間が経過したら、その駒の生命力に一定の値を設定して、その駒を移動可能及び攻撃可能な活性状態に遷移させることを含む請求項１に記載のコンピュータゲームプログラム。
【請求項３】
請求項１における駒に攻撃力パラメータを追加して、攻撃した敵の駒の生命力の減少度合いを変えることを含む請求項１に記載のコンピュータゲームプログラム。
【請求項４】
請求項１における駒に攻撃間隔パラメータを追加して、駒が攻撃した直後からコンピュータのタイマーを利用して経過時間を計り、攻撃間隔時間が経過するまでは、同じ駒が次の攻撃を行わないことを含む請求項１に記載のコンピュータゲームプログラム。
【請求項５】
請求項１における駒に防御力パラメータを追加して、敵の駒の攻撃によって生命力の減少度合いを変えることを含む請求項１に記載のコンピュータゲームプログラム。
【請求項６】
請求項１における駒に移動待ち時間パラメータを追加して、駒が移動された直後からコンピュータのタイマーを利用して経過時間を計り、移動待ち時間が経過するまでは、その駒を移動させることができないことを含む請求項１に記載のコンピュータゲームプログラム。
【請求項７】
請求項１〜６までの駒のパラメータ値を対局前にプレーヤーが設定画面で調整しておけることを含む請求項１に記載のコンピュータゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、将棋やチェス及びそれらに類する盤上ゲームをコンピュータ及びコンピュータネットワークを利用して対戦できるようにしたコンピュータゲームプログラムに関するものである。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２００４−０８９５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
将棋やチェスを指すソフトウェアがプロ棋士相手に勝てるようになってきたが、そうした強いソフトウェアの指し手を真似すれば、将棋やチェスの初心者であっても上級者に成り済ますことができてしまう。
【課題を解決するための手段】
【０００４】
従来の将棋やチェスでは、ある駒Ａの移動可能なマスに敵の駒Ｂがあれば、駒Ａで駒Ｂを取って駒Ｂがあったマスへ駒Ａを移動させることができるが、本発明ではコンピュータを利用して対戦できるようにソフトウェア化する際に、一つ一つの駒に生命力、攻撃力、攻撃間隔、防御力、移動待ち時間、復活待ち時間等のパラメータを付与しておき、敵の駒の生命力がゼロ以下でなければ、敵の駒を取って移動することができないようにするなど、コンピュータ利用ならではの機能を将棋やチェスに付加する。
【０００５】
味方の駒が移動可能なマスに敵の駒があれば、その敵の駒をビームやミサイルや弾丸、手裏剣等の飛び道具により攻撃して駒の生命力を減らす。
【０００６】
飛び道具の攻撃によって駒の生命力が減っていき、やがて生命力がゼロ以下になった時は、その駒を非活性化（移動及び攻撃不可能で尚且つ駒が取られる可能性がある状態に遷移）させる。
【０００７】
非活性状態の駒は、敵の駒よって取られる可能性があるまま移動及び攻撃できなくなるが、復活時間パラメータに設定された時間が経過するまで敵の駒に取られなければ、生命力を回復させて活性化（移動及び攻撃可能で尚且つ駒が取られない状態へ遷移）させる。
【０００８】
活性状態の駒でも移動後には移動待ち時間パラメータに設定された時間が経過するまでは一時的に移動不可能な状態にして、駒の移動ができないようにする。
【０００９】
移動可能状態の駒は、相手プレーヤーのターンを待たずに操作できるようにする。
【００１０】
駒の各種パラメータの初期値はプレーヤーが予め一定の値域内で調整可能とする。
【００１１】
駒の初期配置及び駒の進める場所は、従来の将棋やチェス及びそれらに類する盤上ゲームと同様とする。
【発明の効果】
【００１２】
従来の将棋やチェスのソフトウェアの指し手を真似する意味がないものにできる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例としてのクライアント／サーバーモデルでデザインしたプロセス分割図である。
【図２】本発明の実施例としてのクライアントプロセスの基本フローを示す。
【図３】本発明の実施例としてのサーバープロセスの基本フローを示す。
【図４】本発明の実施例としての駒パラメータ調整画面の説明図である。
【図５】本発明の実施例としての駒の各種状態表示の説明図である。
【図６】本発明の実施例としての対局開始時の駒の初期配置と状態表示の説明図である。
【図７】本発明の実施例としての初期配置から７六歩と角道を開けた状態の説明図である。
【図８】本発明の実施例としての駒データ、飛び道具データの説明図である。
【図９】本発明の実施例としての攻撃対象となる敵の駒に非活性状態の駒がない場合の説明図である。
【図１０】本発明の実施例としての攻撃対象となる敵の駒に非活性状態の駒がある場合の説明図である。
【実施例】
【００１４】
以下、本発明によって従来の将棋をつくり変えた場合の実施例を示す。尚、本実施例の特徴として、駒パラメータを敵のクライアントへ送らないものとするので、敵の移動待ち時間及び復活待ち時間は視覚化されないものとする。全ての飛び道具は盤の縦１マスを１０００ｍｓの速度で移動するものとする。
【００１５】
図１に示すように、各種判定処理及び状態遷移処理０１０１を行うサーバープロセスとプレーヤーの駒操作処理及び画面表示処理０１０３を行うクライアントプロセスに分けてデザインする。サーバープロセスをサーバーソフトウェアへ実装して、クライアントプロセスをクライアントソフトウェアへと別々のソフトウェアに分けて実装する。サーバーソフトウェアとクライアントソフトウェア間の情報伝達手段０１０２はネットワーク通信とする。
【００１６】
インターネットを利用したオンライン対戦システムを構築する。ネットワーク通信０１０２はＴＣＰ／ＩＰを利用する。クライアントプロセスは各種インターネット用ブラウザで実行可能なスクリプトとしてオンラインで提供する。サーバープロセスは独自に開発するソフトウェアに組み込むものとする。
【００１７】
インターネットを利用したオンライン対戦システムの場合は、ネットワークレイテンシの影響により、クライアント端末画面で多少のラグが生じるものの、全ての判定処理及び状態遷移処理はサーバープロセスのみで行われるため、システム内部では矛盾のない非同期型／サーバー集中処理型のオンライン対戦システムとなる。尚、オンライン対戦用に構築したシステムであっても、ループバックを利用したり、バーチャルコンピュータを利用することによって、ローカルコンピュータ１台でオフライン対戦システムとして流用可能である。
【００１８】
クライアントプレセスの基本フローを図２に示す。サーバープロセスから全ての駒の初期状態と座標を受信０２０１した駒データは画面更新処理０２０２により、盤と全ての駒がクライアント端末に表示されて対戦開始となり、イベント待ち０２０３となる。ここでは駒の操作イベント（マウスクリック等）とサーバープロセスからの受信イベントが受け付けられる。イベント待ち時間は５０ｍｓとする。何らかのイベントが発生した場合は、駒が操作されたか０２０４判定されて、駒が操作された場合は、操作された駒と移動先座標をサーバープロセスへ送信０２０５される。サーバープロセスからのデータ受信イベントがあった場合は、サーバープロセスからデータ受信処理０２０７により、変化があった全ての駒データ及び飛び道具データが受信される。受信データの中に勝敗確定データがあれば、勝敗確定０２０８と判定して画面更新処理０２１０へ進み、勝敗確定時の盤面を表示してから勝敗表示処理０２１１が行われて対戦終了となる。勝敗が確定していなければ、有効な飛び道具データ（生成されてから、まだ消滅していない全ての飛び道具）の位置が算出０２０９されて、画面更新処理０２０２へ戻る。この時の画面更新処理０２０２は、盤と全ての駒と全ての飛び道具が表示される。
【００１９】
サーバープロセスの基本フローを図３に示す。プレーヤーの定義済み駒データ読み込み０３０１は、図４の駒パラメーター調整画面によって対戦前に調整されてサーバーに保存してあるデータが読み込まれる。保存データがなければデフォルト値が設定される。全ての駒の初期状態と座標設定０３０２により、全ての駒を活性状態及び移動待ち状態として、将棋の初期座標を設定し、全ての駒データをクライアントプロセスへ送信０３０３される。クライアントプロセスからのデータ受信待ち０３０４では、プレーヤーが操作した駒の移動先座標が受信される。この受信待ち時間は５０ｍｓとして、駒の移動先座標を受信した場合は、駒の移動処理０３０６の内部処理で移動可不可が判定されて、移動可能な場合はサーバープロセスで内部管理しているメモリ上の盤面が更新される。移動不可の場合にも変化があった駒として扱われて、元の座標または持ち駒に戻すよう設定されて、０３０７処理後に変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８によって、クライアントプロセスに対して駒を元の座標または持ち駒へ戻させる。受信待ちタイムアウト０３０５だった場合でも、駒の移動処理０３０６を行った後でも、全ての飛び道具の当たり判定及び全ての駒の状態遷移処理０３０７が行われて、何らかの変化を起こした駒データ及び生成あるいは消滅した飛び道具データは、変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８によって、全て送信される。王将または玉将が取られた場合は、勝敗確定０３０９から勝敗をクライアントプロセスへ送信０３１０されて終了する。勝敗が確定していなければ、再びクライアントプロセスからのデータ受信待ち０３０４となる。
【００２０】
クライアント端末における駒パラメータ調整画面を図４に示す。プレーヤーが対戦前に調整してサーバーに保存しておく。０４０１は調整する駒の選択カーソルである。マウス操作等で選択する。０４０４は選択された駒である。０４０３の値は、調整つまみ０４０５によって設定されたパラメータ値である。実施例では各パラメータは１から１５までの係数を設定できる。各パラメータのデフォルト値は５としている。図４のように生命力を１、攻撃力を５、攻撃間隔を３、防御力を５、移動待ち時間を９、復活待ち時間を５に設定すると残りポイント０４０２として２余る。この余った２ポイントは他の駒に割り当てることができる。設定値はサーバーに保存しておき、対戦時にサーバープロセスが読み込んでクライアントプロセスへ送られる。本実施例では、調整済みの駒であっても、取った駒（持ち駒）はデフォルト値にリセットするので、対戦相手の駒パラメータ値を利用しないので知る必要がない。そのため、プレーヤー自身が設定保存した駒パラメータだけをサーバープロセス経由でクライアントプロセスが受け取ることになる。
【００２１】
図５の（Ａ）の駒は活性状態（攻撃可能状態）の移動可能状態である。０５０１は生命力のパーセンテージがバーの長さで視覚化されている。生命力が１００％であれば完全なバーが描かれる。生命力が減ればバーが短くなる。駒０５０２は通常の状態で表示される。
【００２２】
図５の（Ｂ）の駒は活性状態の移動待ち状態である。０５０３の生命力バーは０５０１同様に視覚化される。駒０５０４は通常の状態で表示される。０５０５は移動待ち時間のパーセンテージがサークルで視覚化されている。移動待ち時間が１００％であれば完全なサークルが描かれる。移動待ち時間が減ればサークルが欠けていく。移動待ち時間が０％になってサークルが消えれば、駒は活性状態の移動可能状態となる。図６に示す通り、本実施例では敵の移動待ち時間のサークルは視覚化されない
【００２３】
図５の（Ｃ）の駒は非活性状態（移動不可状態且つ攻撃不可状態）である。０５０６の生命力はゼロパーセントを示している。駒０５０７は灰色で表示される。０５０８は復活待ち時間のパーセンテージが視覚化されている。復活待ち時間が１００％であれば完全なサークルが描かれる。復活待ち時間が減ればサークルが欠けていく。復活待ち時間が０％になってサークルが消えれば、生命力を１００％に戻して、駒は活性状態の移動可能状態となり、駒０５０７の表示も元の色に戻される。
【００２４】
対戦開始時点では図６に示すように全ての駒が活性状態の移動待ち状態となる。時間の経過により、移動待ち時間が短い駒からプレーヤーが指せるようになる。図７は７七歩が移動可能状態となってプレーヤーが７六歩と指した盤面である。７六に移動した歩は再び移動待ち状態となっている。従来の将棋であれば、８八角は次の手で３三歩を取ることができるわけだが、本発明では、こうした条件の時に敵の駒（この例では３三歩）が活性状態であるならば、味方の駒（この例では８八角）が飛び道具で攻撃することになる。０７０１は８八角が撃ち出した飛び道具である。
【００２５】
図８の（Ａ）はクライアント端末で図７の７六歩と指した際に図２の操作された駒と移動先座標をサーバープロセスへ送信０２０５されるデータである。もしも持ち駒があって、持ち駒を使う場合は持ち駒状態がｏｎになり、元座標はｎ／ａとなる。もしも移動する駒が成れる場合にはクライアントプロセスでプレーヤーに対して成るか、成らないか選択を迫ることになる。プレーヤーが成ることを選択した場合は、成り状態がｏｎになる。しかしながら、インターネットを利用したオンライン対局ではネットワークレイテンシの影響等で、その間にサーバープロセスで内部管理しているメモリ上の盤面は変化していて、既に敵の駒が置かれるなどして、味方の駒が移動して成ることができない状況となる場合があり得る。クライアントプロセスにおいて選択処理あるいは判定処理を行う場合があったとしても、それは一時的なものでしかなく、最終的な判定処理および決定はサーバープロセスが行う。サーバープロセスは駒の移動及び成る指示などを不可として判定した場合は、図３の変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８において、クライアントプロセスに対して元の位置に駒を戻させる。
【００２６】
図８の（Ｂ）はクライアント端末で図７の７六歩と指した際に図３の変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８において、プレーヤー１及びプレーヤー２のクライアントプロセスに対して送られる駒データである。もしも変化があった駒が複数あれば、その全てが一度に送られることになる。駒の生命力はパーセンテージで示される。プレーヤー１が操作した駒であっても、この図８の（Ｂ）がクライアントプロセスに送られてくるまでプレーヤー１の端末においても操作が確定しない。サーバープロセスによって判定され、操作が確定して移動待ち状態がｏｎのデータを受け取ってから移動待ち時間は視覚化される。ネットワークレイテンシの影響で表示上のラグは起こり得るが、サーバープロセス内部では矛盾しないので問題ない。復活待ち状態も同様となる。攻撃間隔（時間）はサーバー内部でのみ処理するので、駒データとしてクライアントプロセスへは送られない。その代りに飛び道具データがクライアントプロセスへ送られることになる。
【００２７】
図８の（Ｃ）はクライアント端末で図７の７六歩と指した際に図３の変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８において、プレーヤー１及びプレーヤー２のクライアントプロセスに対して送られる飛び道具データである。変化があった飛び道具が複数あれば、その全てが一度に送られることになる。敵の駒を攻撃する際は、状態＝生成として、撃ち出し座標と目標座標を設定してクライアントプロセスへ送る。飛車、角行、香車は敵の駒がいなければ盤の端まで移動できる。それに倣って、飛車、角行、香車の飛び道具は、敵の駒がよけた場合に盤の端まで飛ぶように目標座標が設定される。クライアント端末では、飛び道具データを受け取った時点で、図２の画面更新処理０２０２により、飛び道具の表示が始まる。本実施例ではイベント待ちタイムアウトを５０ｍｓとしているので、遅くとも５０ｍｓ毎に表示が更新される。飛び道具データ（状態＝生成）を受け取った時刻と画面更新処理０２０２時刻により、飛び道具を表示させるべき位置が割り出されて表示される。尚、駒の移動中は飛び道具が当たらないものとする。図７の３三歩を３四歩と指してから、２二角を７七角と指した場合は、飛び道具０７０１とすれ違うことになる。飛び道具は基本的に目標座標に到達した時に自動消滅するが、飛車、角行、香車から撃ち出される飛び道具は敵の駒に当たった場合は、そこで消滅させることになる。その場合は、消滅させたい飛び道具＃（番号）を設定して、状態＝消滅として、図３の変化があった駒及び飛び道具データをクライアントプロセスへ送信０３０８により、サーバープロセスからクライアントプロセスへ飛び道具の消滅が指示されて、クライアント端末から該当する飛び道具が消されるものとする。
【００２８】
図９の（Ａ）は、移動先座標の選択肢が複数ある駒が、その移動先に活性状態の駒が複数あった場合の攻撃処理を示している。２一王と４一飛は活性状態なので、どちらも攻撃対象となる。飛び道具０９０１は４一飛へ、飛び道具０９０２は２一王へ向けて同時に撃ち出されている。
【００２９】
図９の（Ｂ）は、移動先座標の選択肢が複数ある駒が、その移動先の全てに駒なかった場合の攻撃処理を示している。飛び道具０９０３は３一飛から３三桂を目がけて撃ち出されている。飛び道具０９０４は３三桂から２一王を目がけて撃ち出されている。４一には駒が無いので、その方向へは飛び道具が撃ち出されない。
【００３０】
図１０は、移動先座標の選択肢が複数ある駒が、その移動先に活性状態の駒と非活性状態の駒があった場合の攻撃処理を示している。４一飛は非活性状態なので攻撃しない。２一王は活性状態なので飛び道具１００１を撃ち出している。
【図１】
2018187085.tif 000003
【図２】
2018187085.tif 000004
【図３】
2018187085.tif 000005
【図４】
2018187085.tif 000006
【図５】
2018187085.tif 000007
【図６】
2018187085.tif 000008
【図７】
2018187085.tif 000009
【図８】
2018187085.tif 000010
【図９】
2018187085.tif 000011
【図１０】
2018187085.tif 000012
【手続補正書】
【提出日】平成29年7月3日(2017.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
将棋やチェス及びそれらに類する盤上ゲームをコンピュータを利用して対戦できるようにするためのコンピュータゲームプログラムであって、各々の駒に生命力パラメータを付与し、尚且つ駒の状態（移動及び攻撃可能な活性状態／移動及び攻撃不可能な非活性状態）及び座標をメモリに保持しておき、前記コンピュータにプレーヤーが操作するコンピュータ端末によって駒の移動座標が指示された時は、駒の移動可不可を判定して、移動可能であれば駒の座標を更新して駒を移動させ、各々の駒が次の手で移動可能な座標に敵の駒が活性状態で存在する場合は、味方の駒からビームやミサイルや弾丸、手裏剣等の飛び道具をプレーヤーが操作するコンピュータ端末のディスプレイで撃ち出す表示を行って敵の駒を攻撃して、敵の駒の生命力を減少させていき、生命力がゼロ以下になった場合には、その駒を非活性状態に遷移させて、味方の駒が移動可能な座標に非活性状態になった敵の駒がある場合に限り、非活性状態になった敵の駒を奪える機能を実現させるためのコンピュータゲームプログラム。
【請求項２】
前記駒に復活待ち時間パラメータを追加して前記メモリに保持することにより、前記コンピュータに前記駒が攻撃されて生命力がゼロ以下になった直後から前記コンピュータのタイマーを利用して経過時間を計り、復活待ち時間が経過したら、前記駒の生命力に一定の値を設定して、前記駒を移動可能及び攻撃可能な活性状態に遷移させる機能をさらに実現させるための請求項１に記載のコンピュータゲームプログラム。
【請求項３】
前記駒に攻撃力パラメータを追加して前記メモリに保持することにより、前記コンピュータに攻撃した敵の駒の生命力の減少度合いを変える機能をさらに実現させるための請求項１に記載のコンピュータゲームプログラム。
【請求項４】
前記駒に攻撃間隔パラメータを追加して前記メモリに保持することにより、前記コンピュータに前記駒が攻撃した直後から前記コンピュータのタイマーを利用して経過時間を計り、攻撃間隔時間が経過するまでは、前記駒が次の攻撃を行わない機能をさらに実現させるための請求項１に記載のコンピュータゲームプログラム。
【請求項５】
前記駒に防御力パラメータを追加して前記メモリに保持することにより、前記コンピュータに敵の駒の攻撃によって生命力の減少度合いを変える機能をさらに実現させるための請求項１に記載のコンピュータゲームプログラム。
【請求項６】
前記駒に移動待ち時間パラメータを追加して前記メモリに保持することにより、前記コンピュータに前記駒が移動された直後から前記コンピュータのタイマーを利用して経過時間を計り、移動待ち時間が経過するまでは、前記駒を移動させることができない機能をさらに実現させるための請求項１に記載のコンピュータゲームプログラム。
【請求項７】
前記駒のパラメータ値を対局前にプレーヤーが設定画面で調整可能な機能を前記コンピュータにさらに実現させるための請求項１から請求項６のいずれか一項に記載のコンピュータゲームプログラム。