以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、ゲームシステム1の全体的な構成を示す模式図である。本実施形態では、ゲームシステム1は、予め定められた複数の役(達成条件)のうちのいずれかの役の成立により特典(例えば点数等)を付与するゲームを提供する。ゲームの種類としては、ユーザによって操作されるキャラクタ(プレイヤキャラクタまたは操作キャラクタ)が、3人の他ユーザによってそれぞれ操作される3人のキャラクタと対戦可能な麻雀ゲームを例示する。
本実施形態では、東場、南場、西場および北場の各々の4局で対局を行う一荘戦を想定する。また、本実施形態では、ユーザと当該ユーザが操作するキャラクタとは、1対1で対応している。このため、キャラクタとの関連で述べる説明は、ユーザとの関連で述べる説明と実質的に同じであり、キャラクタは、適宜ユーザに置き換えることができる。
麻雀ゲームでは、部屋の麻雀卓に積まれた136枚あまりの牌(識別情報)の山から牌をキャラクタ毎に1つずつ引き、14枚〜18枚の手牌(当該キャラクタが所有する牌)の組合せからなる役の成立を目指す。また、麻雀では、家(自家または他家)、副露、晒すなどの専門用語が用いられる。ここで、家はキャラクタを意味し、自家は自ユーザによって操作されるキャラクタを意味し、他家は他ユーザによって操作されるキャラクタまたはNPCを意味する。さらに、副露は、ポン、チー、大明槓、暗槓、小明槓の総称であり、晒すは牌の模様を他のキャラクタに見せることを意味する。
各局は、親が上がり続ける限り継続され、子が上がったときや流局したときに終了する。即ち、親の切替条件は、子に上がられることや、流局することにより成立する。今回の対局が終了すると、右隣りのキャラクタに親が切り替わり、次回の対局が開始される。
なお、ゲームの種類は、役の成立により特典(例えば点数等)を付与するゲームであればこれに限らず、例えば、トランプを用いたゲーム(例えばポーカー)などであってもよい。
図1に示すように、ゲームシステム1は、複数のユーザ端末100と、ゲームサーバ200とを含む。各ユーザ端末100とゲームサーバ200とは、ネットワーク2を介して接続されている。ネットワーク2は、インターネット、図示しない無線基地局によって構築される各種移動通信システム(たとえば、所謂3G、4G移動通信システム、LTE(Long Term Evolution))、または所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(たとえばWi-Fi(登録商標))を含み得る。
(ユーザ端末およびゲームサーバの構成)
ユーザ端末100は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であることがより好ましい。図1に示すように、ユーザ端末100は、通信バスによって互いに電気的に接続されたプロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15とを備える。
入出力IF14は、USB(Universal Serial Bus)等を介した各種データ入出力機能、および音声入出力機能を備える。
タッチスクリーン15は、入力部151と表示部152とを組合せた電子部品である。入力部151は、タッチセンシティブなデバイスであり、たとえばタッチパッド等によって構成される。表示部152は、たとえば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。入力部151は、タッチスクリーン15に対するユーザの指やスタイラスといった物体の接触または近接を検知し、操作入力として受け付ける。入力部151は、当該操作入力に含まれるユーザの作用(主に、タッチ操作、スワイプ操作、フリック操作、およびタップ操作等の物理的接触操作)が入力された画面位置の情報を検知して、該情報を外部へ情報信号として出力する機能を備える。タッチスクリーン15は、タッチセンシティブであればよい。タッチセンシティブなデバイスは、静電容量方式、抵抗膜方式等のどのような方式を採用したものであってもよい。
ゲームサーバ200は、ゲームに関する各種サービスを各ユーザ端末100に提供する。ゲームサーバ200は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであることが、より好ましい。図1に示すように、ゲームサーバ200は、通信バスによって互いに電気的に接続されたプロセッサ20と、メモリ21と、ストレージ22と、通信インターフェース(IF)23と、入出力IF24とを備える。
プロセッサ10、20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を含んで構成される。プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、ゲームサーバ200全体の動作を制御する。
メモリ11、21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の揮発性記憶装置で構成され得る主記憶装置を含んで構成される。
ストレージ12、22は、フラッシュメモリまたはHDD(Hard Disk Drive)などの不揮発性記憶装置によって構成され得る補助記憶装置を含んで構成される。メモリ11には、プロセッサ10がストレージ12からロードした各種プログラムおよびデータが一時的に記憶される。メモリ21には、プロセッサ20がストレージ22からロードした各種プログラムおよびデータが一時的に記憶される。これによりメモリ11は、プロセッサ10に対して作業領域を提供する。メモリ21は、プロセッサ20に対して作業領域を提供する。
ゲームサーバ200のストレージ22には、ゲームプログラム等のゲームデータが格納される。ユーザ端末100のストレージ12には、ゲームサーバ200からダウンロードされるゲームプログラム等のゲームデータが格納される。当該ゲームプログラムは、メモリ11、21に展開される。プロセッサ10は、メモリ11に展開されるゲームプログラムを実行する。プロセッサ20は、メモリ21に展開されるゲームプログラムを実行する。メモリ11には、プロセッサ10が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。メモリ21には、プロセッサ20が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。
通信IF13、23は、ユーザ端末100とゲームサーバ200との間で各種データを送受信するための通信制御機能を備える。通信制御機能には、たとえば、無線LAN(Local Area Network)接続機能、有線LAN、無線LAN、携帯電話回線網を介したインターネット接続機能、近距離無線通信機能等が含まれる。
本実施形態では、各種データは、所定のゲームプログラム、ユーザ情報、ゲーム情報等のゲームデータ、それらをユーザ端末100とゲームサーバ200との間に送受信させる指示、および、ゲームを進行させるための指示を含む。
たとえばプロセッサ10は、通信IF13を介してユーザIDをゲームサーバ200に送信することによって、当該ユーザIDに関連付けられたオブジェクト(キャラクタ、配牌スキル、ツモスキル、配牌、ツモ牌、捨て牌等)に関する情報をゲームサーバ200から受信する。また、プロセッサ10は、ユーザ作用に基づいて麻雀卓に牌を配置し、ゲームの結果として取得されたゲームポイント(点棒)を、通信IF13を介してゲームサーバ200に送信する。
ゲームサーバ200の入出力IF24は、マウス、キーボード等の情報入力機器である入力部、および、液晶ディスプレイ等の出力部を備えており、コンピュータの情報をモニタリングするために用いられる。
(ユーザ端末の機能的構成)
図2は、ユーザ端末100の機能的構成を示す図である。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能し得る。記憶部120にはゲームプログラムが格納されている。このゲームプログラムは、主記憶上に展開されかつ制御部110において実行される。また、本実施形態では、このゲームプログラムは、プロセッサ10およびメモリ11を備えるユーザ端末100に対し、麻雀ゲームを進行させる制御部110および記憶部120としてユーザ端末100を機能させるプログラムである。
制御部110は、当該ゲームプログラムによって、作用受付部111、端末処理部112、タイマー部113、端末判定部114、表示制御部115、報酬計算部116、および送受信部117として機能し得る。制御部110が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータ、および制御部110によって利用される各種ゲームデータも、主記憶上に一時的に格納される。
作用受付部111は、タッチスクリーン15の入力部151に対するユーザの作用を検知する。作用受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールによる操作指示等から、いかなる入力がなされたかを判別し、その結果を端末処理部112等の必要な要素に出力する。作用受付部111は、タッチスクリーン15に対する作用入力がなされた場合には、入力位置の座標情報および作用の種類(タッチ操作、スライド動作等)を検知する。また、作用受付部111は、連続して検知されていた入力が途切れることを検知することによって、タッチスクリーン15から接触入力が解除されたことを検知する。
端末処理部112は、ユーザ端末100全体の動作を制御し、各要素間におけるデータの送受信、およびゲームの実行に必要な演算処理その他の処理を行う。端末処理部112は、たとえば、作用受付部111によって検知された作用に基づいて、ゲームプログラムに従ったゲームを展開させ、その結果を示すゲーム画像を描画するよう、表示制御部115に指示する。また、端末処理部112は、タッチスクリーン15に対する操作入力に基づいて仮想空間内におけるゲームオブジェクトを操作する。また、端末処理部112は、タッチスクリーン15に対する操作入力および演算処理の結果等に基づいて、記憶部120に記憶されている各種データの更新等の処理を行う。なお、端末処理部112は、ゲームの進行状態に応じて、ゲーム空間の視野を指定するための仮想カメラの位置を制御してもよい。
タイマー部113は、麻雀部屋内の時刻を規定するとともに、麻雀部屋内の時間の経過を計測する。タイマー部113は、たとえば、牌がツモられた時刻を記憶部120に記憶させ、その後に経過した時間を測定する。タイマー部113は、測定することによって得られる時間情報を端末判定部114に提供する。端末判定部114は、タイマー部113および記憶部120を参照して、今回のツモから所定時間が経過したか否かなどを判定できる。
表示制御部115は、ゲームサーバ200から受信したユーザ情報、ゲームプログラムによる演算結果、およびユーザの入力部151に対する作用に基づいて、表示部152に表示される画像を生成する。本実施形態では、ユーザ端末100は、配牌、牌山、ツモ牌、捨て牌、ポン、チー、カン、ロンあがり、ツモあがり、流局等などの対局の開始から終了までに刻々と変化するゲーム情報をゲームサーバ200から取得し、この情報を用いて対局画面の画像を生成する。なお、これらのゲーム情報は、ユーザ端末100側においても記憶しているものであってもよい。表示制御部115は、端末処理部112によるゲーム進行制御に応じて表示画像を更新する。
報酬計算部116は、作用受付部111から受信した操作に基づいて、各ユーザに提供される報酬を算出して、ユーザに付与する。たとえば報酬計算部116は、ユーザに付与される点棒を算出し、ユーザに付与する。
送受信部117は、ゲームサーバ200から各種情報を受信したり、ゲームサーバ200に各種情報を送信したりする。送受信部117は、制御部110の制御によって各種情報をゲームサーバ200に対して送信する。ゲームサーバ200は、ネットワーク2および通信IF23を介して当該情報を受信し、送受信部211が情報の内容を識別して受け付ける。送受信部117は、たとえば、ユーザ端末100上で動作可能なゲームプログラム、ユーザ情報、ゲーム画面等のゲーム空間情報、自ユーザの配牌、牌山、他のユーザの捨て牌、他のユーザによるポン、チー、カン、ロンあがり、ツモあがり等のゲーム情報を、ゲームサーバ200から受信することができる。なお、これらの情報は、ユーザ端末100側においても記憶しているものであってもよい。一方、送受信部117は、ユーザ情報、自ユーザの捨て牌、自ユーザによるポン、チー、カン、ロンあがり、ツモあがり等のゲーム情報を、ゲームサーバ200に送信することができる。
記憶部120には、制御部110が前述の各部として機能するために必要なデータが記憶されている。当該データとしては、たとえば、ゲームプログラム、ゲーム情報、およびユーザ情報が含まれる。ゲーム情報としては、オブジェクト管理テーブル等が挙げられる。ユーザ情報としては、ユーザ管理テーブル等が挙げられる。
本実施形態では、ゲームプログラムは、ユーザの立場で麻雀ゲームを進めるユーザ側プログラムと、管理者の立場で当該麻雀ゲームを取り仕切る管理者側プログラムとによって構成されている。いずれかのユーザ(ユーザ1)がホストとして麻雀部屋を作ると、当該ユーザとともに麻雀卓を囲む3人のユーザ(ユーザ2〜4)が、マッチングによって選定され、ゲストとして当該麻雀部屋に入室する。対戦(一荘戦)は、ユーザ1〜4が揃った後に、開始される。
また、本実施形態では、麻雀ゲームに用いる情報として、図4に示す配牌スキル管理テーブル301と、図5に示すツモスキル管理テーブル302と、図6(A)に示すレーティング管理テーブル303と、図6(B)に示すスキルポイント管理テーブル304と、図6(C)に示す理不尽値/親かぶり回数管理テーブル305と、図6(D)に示す手牌管理テーブル306と、図6(E)に示す順位管理テーブル307とが、ユーザ端末100の記憶部120に設けられている。
(ゲームサーバの機能的構成)
図3は、ゲームサーバ200の機能的構成を示すブロック図である。ゲームサーバ200は、各ユーザ端末100にゲーム進行に必要な情報を提供するゲーム提供機能を有している。ゲームサーバ200は、ユーザ端末100からゲーム情報を受信し、ユーザ端末100上で動作可能なゲームプログラム、Webページ(ゲーム画面等)、ユーザ情報およびゲームパラメータ等の各種ゲームデータ、各種通知等を送信する。ゲームサーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、入出力IF24等の協働によって、制御部210および記憶部220として機能し得る。
図3に示すように、制御部210は、記憶部220に格納されたゲームプログラムによって、送受信部211、サーバ処理部212、データ管理部213、マッチング部214、計測部215として機能し得る。本実施形態では、このゲームプログラムは、プロセッサ20およびメモリ21を備えるゲームサーバ200に対し、麻雀ゲームを進行させる制御部210および記憶部220としてゲームサーバ200を機能させるプログラムであり、管理者の立場で当該麻雀ゲームを取り仕切る上述の管理者側プログラムも含んでいる。
送受信部211は、各ユーザ端末100から送信される各種情報を受信したり、各ユーザ端末100に各種情報を送信したりする。
各ユーザ端末100は、制御部110の制御に基づいて各種情報をゲームサーバ200に対して送信する。ゲームサーバ200は、ネットワーク2および通信IF23を介して当該情報を受信し、送受信部211が情報の内容を識別して受け付ける。
送受信部211は、記憶部220に格納されている各種管理テーブルを参照する。送受信部211は、必要に応じてデータ管理部213によって更新された各種管理テーブルを参照して、必要な処理を実行する。当該情報には、各ユーザに配られる牌の組合せを特定するための配牌情報、配牌の後に残った牌を特定するための牌山情報、各ユーザによるポン、チー、カンなどの情報が含まれる。
また、送受信部211は、ユーザ端末100上で動作可能なゲームプログラム、ユーザ情報、ゲーム画面等のゲーム空間情報、各ユーザの配牌、牌山、各ユーザの捨て牌、各ユーザによるポン、チー、カン、ロンあがり、ツモあがり等のゲーム情報をユーザ端末100に送信する。
サーバ処理部212は、ゲームサーバ200全体の動作を制御し、各要素間におけるデータの送受信、および、ゲームの進行に必要な演算処理を行う。サーバ処理部212は、たとえば、送受信部211が受信したユーザ端末100からの情報または要求に基づいて、ゲームプログラムに従った演算処理を実行する。そして、その結果としての各種ユーザ情報、ゲーム情報等のゲームデータ、およびゲームプログラム等を、通信IF13を介してユーザ端末100に送信することによって、ユーザ端末100においてさらにゲームを進行させる。
データ管理部213は、サーバ処理部212における各種演算結果に基づいて、記憶部220に格納されている各種ゲームデータ、およびデータベースのレコードを、追加、更新、または削除することによって、必要な処理を実行する。
送受信部211は、例えば、ユーザが麻雀卓に牌を晒すようにユーザ端末100に作用を与えると、その結果としてユーザが保有するオブジェクト情報およびゲームポイントに関する情報をユーザ端末100から受信する。サーバ処理部212は、受信された情報に基づいて必要な処理を実行し、一方、データ管理部213はユーザ情報およびゲーム情報を更新する。
また、例えば、送受信部211がユーザ端末100から捨て牌を実行する要求を受信した場合、データ管理部213は、捨て牌の情報を、ユーザ情報と、捨て牌の配置位置等に関するゲーム情報とに関連付けて記憶する。
マッチング部214は、対戦プレイのために、複数の操作キャラクタを所定のゲーム空間に関連付ける。たとえばマッチング部214は、ある操作キャラクタがホストとして部屋を作る操作を行った場合、当該操作キャラクタをホストとし、他の3人の操作キャラクタをゲストとするパーティをマッチングによって組成し、当該パーティに属する4人の操作キャラクタを同じ麻雀部屋に一時的に関連付ける。
計測部215は、タイマー部113と同様に、麻雀部屋内の時刻を規定するとともに、麻雀部屋内の時間を計測する機能を有する。計測部215は、例えば、対局開始時に発動させたいスキルを選択するための画面が表示された時刻からの経過時間を計測する。計測部215は、麻雀部屋の時間情報を生成し、タイマー部113で生成された麻雀部屋の時間情報と照合する。これにより、ユーザ端末100とゲームサーバ200において麻雀部屋の時間情報が同期され、各種時間情報の計測および判定を円滑に実施し得る。
記憶部220には、ゲームプログラムおよびユーザの認証プログラム等が格納されている。また、記憶部220には、ユーザ管理テーブル等のユーザ情報、オブジェクト管理テーブル等のゲーム情報を管理するデータベースが構築されていてもよい。記憶部220には、図4に示す配牌スキル管理テーブル301と、図5に示すツモスキル管理テーブル302と、図6(A)に示すレーティング管理テーブル303と、図6(B)に示すスキルポイント管理テーブル304と、図6(C)に示す理不尽値/親かぶり回数管理テーブル305と、図6(D)に示す手牌管理テーブル306と、図6(E)に示す順位管理テーブル307とを設けるようにしてもよい。
(配牌スキル管理テーブル)
図4を参照して、配牌スキル管理テーブル301は、対局開始時に発動可能な配牌スキルの詳細と、当該配牌スキルを発動させるための条件とを管理する。また、配牌スキルは、対局開始時の配牌の組合せに関するスキルであり、筒子マスター、索子マスター、萬子マスター、字牌マスター、断ヤオマスター、三元メイカー、四喜メイカー、暗刻爆弾、順子爆弾、対子爆弾および槓子爆弾が設定される。
筒子マスターは8枚以上の筒子を配牌に含めるスキルであり、索子マスターは8枚以上の索子を配牌に含めるスキルであり、萬子マスターは8枚以上の萬子を配牌に含めるスキルであり、字牌マスターは9枚以上の字牌を配牌に含めるスキルであり、断ヤオマスターは10枚以上の断ヤオ牌を配牌に含めるスキルである。
三元メイカーは大三元のタネを6枚以上配牌に含めるスキルであり、四喜メイカーは小四喜のタネを7枚以上配牌に含めるスキルであり、暗刻爆弾は2組以上の暗刻を配牌に含めるスキルであり、順子爆弾は2組以上の順子を配牌に含めるスキルであり、対子爆弾は4組以上の対子を配牌に含めるスキルであり、槓子爆弾は1組以上の槓子を配牌に含めるスキルである。
各々の配牌スキルには、スキル発動条件が関連付けられている。また、当該スキル発動条件としては、通常条件と緩和条件とが定められている。緩和条件は、通常条件よりも緩やかな条件であり、通常条件よりも成立する割合が高くなる条件が定められている。
具体的には、筒子マスターの通常条件としては、昼刻の対局で成立する条件が定められており、緩和条件としては、昼刻および夕刻のいずれの対局であっても成立する条件が定められている。索子マスターの通常条件としては、4局またはユーザが北家となる対局で成立する条件が定められており、緩和条件としては、全対局で成立する条件が定められている。
萬子マスターの通常条件としては、ユーザの順位が最下位の対局で成立する条件が定められており、緩和条件としては、ユーザの順位が3位以下の対局で成立する条件が定められている。字牌マスターの通常条件としては、ユーザが子となる対局で成立する条件が定められており、緩和条件としては、ユーザが西家となる対局および子となる対局のいずれであっても成立する条件が定められている。
断ヤオマスターの通常条件としては、ユーザが東家となる対局で成立する条件が定められており、緩和条件としては、全対局で成立する条件が定められている。三元メイカーの通常条件としては、オーラス前の対局で成立する条件が定められており、緩和条件としては、オーラス前およびオーラスのいずれの対局であっても成立する条件が定められてる。
四喜メイカーの通常条件としては、3局またはユーザが親となる対局で成立する条件が定められており、緩和条件としては、2局、3局およびユーザが親となる対局のいずれであっても成立する条件が定められてる。暗刻爆弾の通常条件としては、ユーザが南家となる対局で成立する条件が定められており、緩和条件としては、全対局で成立する条件が定められている。
順子爆弾の通常条件としては、トップとの点数差が20000点以上の対局で成立する条件が定められており、緩和条件としては、トップとの点数差が10000点以上の対局で成立する条件が定められている。対子爆弾の通常条件としては、夕刻の対局で成立する条件が定められており、緩和条件としては、昼刻および夕刻のいずれの対局であっても成立する条件が定められている。槓子爆弾の通常条件としては、ユーザの順位が最下位の対局で成立する条件が定められており、緩和条件としては、ユーザの順位が3位以下の対局で成立する条件が定められている。
本実施形態では、今回の対局において上がるために必要な牌が山に残っている可能性が高いために上がれることや、より点数が高い役となることなどに対して期待感を抱いていたにもかかわらず、他家に上がられてしまったといった理不尽さに応じて、次回以降の対局における配牌スキルの発動条件が、緩和条件に設定される。即ち、次回以降の対局における有利度合いは、配牌スキルが発動されてユーザの手牌が良くなる可能性が高くなる点において、通常条件が設定された場合よりも向上する。この結果、今回の対局の理不尽さを次回以降の対局において補完することが可能となり、ひいては理不尽な対局が行われることによる麻雀ゲームの興趣の低下を抑えることが可能となる。
なお、図4におけるスキル発動条件は、スキルに対して予め定められている例について説明したが、これに限らず、同じスキルであっても、ユーザが操作するキャラクタの種類やゲームの進行状況(戦況等)に応じて異なるようにしてもよい。
(ツモスキル管理テーブル)
図5を参照して、ツモスキル管理テーブル302は、対局中に発動可能なツモスキルの詳細と、当該ツモスキルを発動させるための条件とを管理する。また、ツモスキルとしては、筒子無双、索子無双、萬子無双、字牌無双、断ヤオ無双、ヤオ九無双、ないものねだり、強欲な右手、無難な左手、未来予知、危機察知能力、ぶっこ抜き、秘技ツバメ返し、怒涛のスリカエ、必殺河拾い、爆速街道、気合い乗せ、危機感知能力が設定される。
ツモスキルの種類としては、特定の種類の牌が引き易くなるスキルを含む。例えば、筒子無双は3巡連続で筒子を引き寄せるスキルであり、索子無双は3巡連続で索子を引き寄せるスキルである。萬子無双は3巡連続で萬子を引き寄せるスキルであり、字牌無双は3巡連続で字牌を引き寄せるスキルである。断ヤオ無双は3巡連続で断ヤオ牌を引き寄せるスキルであり、ヤオ九無双は3巡連続でヤオ九牌を引き寄せるスキルである。
ツモスキルの種類としては、自家の手牌またはツモ牌の履歴に基づいて定まる牌が引き易くなるスキルを含む。例えば、ないものねだりは、3巡連続でこれまでに一度も引いていない牌を引き寄せるスキルである。強欲な右手は、3巡連続で既に手牌に持っている牌を引き寄せるスキルである。無難な左手は、3巡連続でまだ一度も捨てていない牌を引き寄せるスキルである。
ツモスキルの種類としては、将来のツモ牌をユーザに報知するスキルを含む。例えば、未来予知は、3回分の未来のツモ牌を予知するスキルである。ツモスキルの種類としては、他家の手牌または捨て牌の履歴に基づいて、ユーザに有利な情報を報知するものであるとしてもよい。例えば、危機察知能力は、捨てようとした牌が誰かの当たり牌だった場合、危機を察知して捨てないようにナビゲーションをしてくれるスキルである。
ツモスキルの種類としては、自家の手牌の少なくとも一部を山牌または捨て牌と入れ替えるスキルを含む。例えば、ぶっこ抜きは、指定した4牌を山の4牌と入れ替えるスキルである。秘技ツバメ返しは、手牌全てを山牌と入れ替えるスキルである。怒涛のスリカエは、ツモった牌が気に入らなければ、次の牌とすり替えることができるスキルである。必殺河拾いは、捨て牌を河から拾い、代わりに手牌1枚を河に置くスキルである。
ツモスキルの種類としては、上述のスキルのほかに、自家にとって有利となるツモ牌を引く様々なスキルを含む。例えば、爆速街道は、シャンテン数が1つ下がるツモをするスキルである。気合い乗せは、裏ドラが必ず乗るようにするスキルである。危機感知能力は、指定した種類の牌が危険牌かどうかわかるスキルである。
なお、危機察知能力では、捨てようとする牌の指定が求められるのに対して、危機感知能力では、牌の種類の指定が求められるに留まる。このため、危機の到来を予知する能力としては、危機察知能力の方が危機感知能力よりも精度が高いと言える。
また、シャンテンとは、最短で何回ツモればテンパイ可能かを示す用語である。具体的には、最短で3回ツモればテンパイ可能な手牌の状態を3シャンテンと呼び、最短で2回ツモればテンパイ可能な手牌の状態を2シャンテンと呼ぶ。このため、役の成立に近づくほどシャンテンの数が小さくなり、シャンテンの数が小さくなることをシャンテン数アップと呼ぶ。
スキル発動条件としては、通常条件と緩和条件とが用意される。上述と同様、緩和条件は、通常条件よりも緩やかな条件であり、通常条件よりも成立する割合が高い。このため、緩和条件としては、無条件成立もあり得る。無条件成立が関連付けられているツモスキルは、常時発動可能である。
通常条件および緩和条件のいずれも、例えばテンパイに至るまでのシャンテン数に基づいたものとしてもよい。図5の例では、筒子無双の通常条件は、自家の手牌が3シャンテン以上のときに成立する。通常条件および緩和条件のいずれも、例えば、自家の順位、場(東何局であるか等)、局における捨て牌の巡目(残りの山牌の数)に基づいたものとしてもよい。図5の例では、ないものねだりの通常条件は、自家が2着以下で自家の手牌が3シャンテン以下のときに成立する。通常条件および緩和条件のいずれも、例えば、自家または他家の行動に基づいたものとしてもよい。図5の例では、気合い乗せの通常条件は、自家がリーチした後に成立する。
本実施形態では、今回の対局の内容の理不尽さに応じて、次回以降の対局におけるツモスキルの発動条件が、緩和条件に設定される。即ち、次回以降の対局における有利度合いは、通常条件が設定された場合よりも向上する。この結果、今回の対局の理不尽さを次回以降の対局において補完することが可能となり、ひいては理不尽な対局が行われることによる麻雀ゲームの興趣の低下を抑えることが可能となる。
なお、図5におけるスキル発動条件は、スキルに対して予め定められている例について説明したが、これに限らず、同じスキルであっても、ユーザが操作するキャラクタの種類やゲームの進行状況(戦況等)に応じて異なるようにしてもよい。
(レーティング管理テーブル)
図6(A)を参照して、レーティング管理テーブル303は、本実施形態の麻雀ゲームに関する自ユーザの強さを表すレーティングと、当該レーティングの補正値とを管理する。レーティングおよび補正値は、麻雀ゲームをプレイする多数のユーザの各々に関連付けられており、強さが拮抗している4人のユーザをマッチングするために使用される。
具体的には、レーティングは、対局を重ねることにより、または対局に勝利することにより増大するパラメータであり、例えば1500〜2500の範囲内のいずれかの値に設定される。また、補正値は、例えば−50〜−250の範囲内で50刻みで設定される。ゲームサーバ200におけるマッチングの際には、ホスト役のユーザのレーティングが当該ユーザの補正値で補正され、補正後のレーティングに対して±50の範囲に収まるレーティングが関連付けられているユーザが、多数のユーザのうちからゲストとして選定される。
このため、ホスト役のユーザのレーティングおよび補正値がそれぞれ1800および−150であれば、補正後のレーティングは1650となり、1600〜1700の範囲に収まるレーティングが関連付けられているユーザがマッチングによって選定され、ゲストとして対戦に臨む。
補正値は、直近の4戦の順位(対戦履歴)に基づいて更新される。具体的には、当該4戦の順位が低いほど、補正値がマイナス方向に増大される。マイナスの値を示す補正値が関連付けられたユーザが、次回以降の対戦のためにホストとして麻雀部屋を作ると、当該ユーザよりも弱いユーザがマッチングによって選定され、次回以降の対戦に臨む。この結果、直近の4戦における調子(理不尽さ)を次回以降の対戦における対戦相手に反映させることが可能となり、ひいては負け続けてしまうことによる麻雀ゲームの興趣の低下を抑えることが可能となる。
なお、レーティングの補正、および補正後のレーティングに基づくゲストの選定は、上述と異なる演算により行うようにしてもよい。
(スキルポイント管理テーブル)
図6(B)を参照して、スキルポイント管理テーブル304は、今回の対戦において消費可能なスキルポイントをユーザ毎に管理する。スキルポイントは、ユーザに関連付けられている配牌スキルまたはツモスキルを発動させるために必要なポイントであり、ポイント量は、スキルが発動される度に減少する。
例えば、対戦が開始された時点では、スキルポイントは120ポイントに設定される。配牌スキルが発動されると40ポイントが消費され、ツモスキルが発動されると25ポイントが消費される。消費により減少したスキルポイントは、次回の対局が開始される際に、例えば50%(=60ポイント)だけ回復される。このため、今回の対局の終了時におけるスキルポイントの残量が55ポイントであれば、次回の対局の開始時におけるスキルポイントは、105ポイントとなる。
また、今回の対局の内容がユーザにとって理不尽なものであれば、次回以降の対局におけるスキルポイントの消費量が抑えられる。具体的には、配牌スキルの発動による消費量は、40ポイントから25ポイントに抑えられ、ツモスキルの発動による消費量は、25ポイントから15ポイントに抑えられる。次回以降の対局における有利度合いは、消費量の抑制により向上する。この結果、今回の対局の理不尽さを次回以降の対局において是正することが可能となり、ひいてはゲームの興趣の低下を抑えることが可能となる。
(理不尽値/親かぶり回数管理テーブル)
図6(C)を参照して、理不尽値/親かぶり回数管理テーブル305は、今回の対戦の理不尽さを表す理不尽値と、今回の対戦における親かぶりの回数とを、ユーザ毎に管理する。
自家の理不尽値は、今回の対局において上がるために必要な牌が山に残っている可能性が高いために上がれると期待していたにもかかわらず、他家に上がられてしまったときや、他家が上がる可能性は低いにもかかわらず、他家に上がられてしまったときに、増大する。例えば、自家がテンパイしているとともに、自家から見えていない牌(上がれなかった他家の手牌および牌山の牌)に自家の待ち牌が多く含まれる状況で、他家に上がられたときに、自家の理不尽値が1だけ増大する。また、牌山に多くの牌が残っているとともに、他家の待ち状態が上がり難い状態(例えばカンチャン待ちの状態)で、他家に上がられたときにも、自家の理不尽値が1だけ増大する。
自家の理不尽値は、自家が上がった場合の得点期待値が大きい状況で他家に上がられたときにも増大する。具体的には、自家がテンパイしている状態で他家に上がられ、自家の上がり役の点数が高かったときに、自家の理不尽値が1だけ増大する。なお、自家が上がった場合、自家の理不尽値は1だけ低減される。
親かぶりとは、自家が親として臨んだ対局において子である他家にツモ上がりされることである。なお、ツモ上がりとは、上がり牌を牌山からツモって上がるものであり、当該上がり牌を他家の捨て牌で補充するロン上がりとは区別される。親かぶりされると、上がり役の点数の約2倍の点数が親から子に支払われる。自家の理不尽値は、自家の親かぶり回数(親である自家が子である他家にツモ上がりされて負けた回数)が所定数に達したときにも、1だけ増大する。
次回以降の対局において自家が発動可能なスキルの発動条件は、自家の理不尽値が0のとき通常条件に設定され、自家の理不尽値が1以上のとき緩和条件に設定される。緩和条件が設定されると、自家の理不尽値は1だけ低減される。
また、次回以降の対局における自家のスキルポイントの消費量は、自家の理不尽値が0のとき、配牌スキルについて40ポイントに設定され、ツモスキルについて25ポイントに設定される。一方、自家の理不尽値が1以上であれば、当該消費量は、配牌スキルについて25ポイントに設定され、ツモスキルについて15ポイントに設定される。
例えば、対局開始時のスキルポイントが105ポイントの対局において配牌スキルが発動されると、当該スキルポイントは、自家の理不尽値が0の場合に65ポイントまで減少し、自家の理不尽値が1以上の場合に80ポイントまで減少する。また、対局中にツモスキルが1回発動されると、当該スキルポイントは、自家の理不尽値が0の場合に40ポイントまで減少し、自家の理不尽値が1以上の場合に65ポイントまで減少する。
(手牌管理テーブル)
図6(D)を参照して、手牌管理テーブル306は、4人のユーザ各々の手牌の推移と、副露に関する情報とを、対局毎に管理する。副露に関する情報は、副露が宣言されたとき当該副露の種類を示し、副露が宣言されなかったとき0を示す。理不尽値を増大させる処理は、手牌管理テーブル306で管理される各ユーザの手牌に基づいて、実行される。
(順位管理テーブル)
図6(E)を参照して、順位管理テーブル307は、過去の対戦における自ユーザの順位を管理する。レーティング管理テーブル303に登録されている補正値は、今回の対戦を含む直近の4戦における自ユーザの順位が低いほど、マイナス方向に大きい値に更新される。次回以降の対戦に臨むユーザのマッチングは、当該補正値によって補正されたレーティングに基づいて実行される。
(動作について)
ホスト役のユーザが操作するユーザ端末100の制御部110は、管理者側プログラムに従って、図7に示すマッチング処理と、図8に示す管理者用対局処理と、図12および図13に示す救済処理とを実行する。また、各ユーザが操作するユーザ端末100の制御部110は、ユーザ側プログラムに従って、図9および図10に示すユーザ用対局処理と、図11に示すユーザ用ツモスキル制御処理と、図14に示すレーティング補正処理とを実行する。
なお、図7に示すマッチング処理と、図8に示す管理者用対局処理と、図12および図13に示す救済処理とは、ゲームサーバ200で実行し、処理結果を各ユーザ端末100に送信するようにしてもよい。
図7を参照して、ステップS01では、部屋を作る操作が行われたか否かを、タッチスクリーン15に対する操作入力に基づいて判定する。当該部屋を作る操作が行われたと判定されなかったときは、今回のマッチング処理を終了する。一方、当該部屋を作る操作が行われたと判定されたときは、ステップS02に進み、マッチング要求をゲームサーバ200に送信する。当該マッチング要求には、ホスト役のユーザのユーザ名と、当該ユーザのレーティングと、レーティングの補正値とが含まれる。
ゲームサーバ200は、当該レーティングを当該補正値で補正し、補正後のレーティングに対して±50の範囲に収まるレーティングが関連付けられている3人のユーザをゲストとして選定する。この結果、ホスト役の1人のユーザとゲスト役の3人のユーザとからなるパーティが組成される。ゲームサーバ200はその後、ゲスト役の3人のユーザのユーザ名を含むマッチング完了情報をホスト役のユーザのユーザ端末100に送信する。
ステップS03では、マッチング完了情報がゲームサーバ200から通知されたか否かを、通信IF13からの入力に基づいて判定する。当該マッチング完了情報が通知されたと判定されなかったときは、ステップS08に進む。ステップS08では、ステップS02の処理から所定時間(例えば10秒)が経過したか否かを、タイマー部113の計測結果に基づいて判定する。
当該所定時間が経過したと判定されなかったときは、ステップS03に戻る。一方、当該所定時間が経過したと判定されたときは、ステップS09でマッチングの不成立を報知し、今回のマッチング処理を終了する。
ステップS03において、当該マッチング完了情報が通知されたと判定されたときは、ステップS04に進む。ステップS04では、今回の対戦に臨む4人のユーザのユーザ名を、スキルポイント管理テーブル304と、理不尽値/親かぶり回数管理テーブル305と、手牌管理テーブル306とに登録する。ステップS05では、スキルポイント管理テーブル304に登録された4人のユーザの各々に対して、120ポイントのスキルポイントを付与する。
ステップS06では、理不尽値/親かぶり回数管理テーブル305に登録された4人のユーザ各々の今回の対戦における理不尽値を0に設定する。また、ステップS07では、理不尽値/親かぶり回数管理テーブル305に登録された4人のユーザ各々の今回の対戦における親かぶり回数を0に設定する。今回のマッチング処理は、ステップS07の処理の後に終了する。
図8に示す管理者用対局処理は、マッチング処理が終了した後に実行される。また、本実施形態では一荘戦を想定しているため、当該管理者用対局処理は、東場の4局と、南場の4局と、西場の4局と、北場の4局との各々で実行される。
ステップS11では、対局に臨む4人のユーザの各々に配牌スキルとツモスキルとを関連付ける。具体的には、配牌スキル管理テーブル301から乱数抽選によって選んだ1つの配牌スキルと、ツモスキル管理テーブル302から乱数抽選によって選んだ2つのツモスキルとを、当該4人のユーザの各々に関連付ける。
このとき、各ユーザに関連付けられた配牌スキルはユーザ間で相違させ、各ユーザに関連付けられたツモスキルもまたユーザ間で相違させるようにしてもよい。つまり、各ユーザに関連付けられた配牌スキルおよびツモスキルが重複しないようにしてもよい。なお、配牌スキルおよびツモスキルは、キャラクタの種類に応じて予め定められているものであってもよく、予め定められているスキルからユーザが選択できるものであってもよい。
ステップS12では、理不尽値/親かぶり回数管理テーブル305に登録された理不尽値のうちから1以上の値を示す理不尽値を特定し、当該理不尽値が関連付けられたユーザのスキルポイントの消費量を変更する。具体的には、配牌スキルの発動によるスキルポイントの消費量を40ポイントから25ポイントに変更し、ツモスキルの発動によるスキルポイントの消費量を25ポイントから15ポイントに変更する。ステップS12ではまた、消費量の変更に応じて、理不尽値を1だけ低減する。
例えば、ユーザ1の理不尽値が3であれば、ユーザ1のスキルポイントの消費量が、配牌スキルについて25ポイントに変更され、ツモスキルについて15ポイントに変更される。消費量が変更されると、当該理不尽値は3から2に低減される。
ステップS13では、理不尽値/親かぶり回数管理テーブル305に登録された理不尽値のうちから1以上の値を示す理不尽値を特定し、当該理不尽値が関連付けられたユーザのスキル発動条件を緩和条件に変更する。ステップS13ではまた、消費量の変更に応じて、理不尽値を1だけ低減する。
例えば、ユーザ1の理不尽値が2であれば、ユーザ1に関連付けられている配牌スキルおよびツモスキルの発動条件を緩和条件に設定する。緩和条件が設定されると、当該理不尽値は2から1に低減される。
ステップS14では、対局に臨む4人のユーザのうちのいずれかのユーザを指定する。ステップS15では、指定したユーザの対局状況(当該ユーザのポジション(東家/南家/西家/北家の別、親/子の別)、麻雀部屋の現在時刻、今回の対局数等)を特定する。ステップS16では、当該ユーザに関連付けられた配牌スキルの発動条件が成立しているか否かを、ステップS15で特定された対局状況に基づいて判定する。
例えば、指定したユーザに関連付けられた配牌スキルが字牌マスターであり、スキル発動条件として緩和条件が設定されていれば、当該ユーザのポジションが西家または子であるか否かを判定する。
ステップS16において、当該配牌スキルの発動条件が成立していると判定されたときは、ステップS17に進み、当該配牌スキルに対応する配牌を当該ユーザに対して実行するとともに、当該配牌を手牌管理テーブル306に設定する。例えば、字牌マスターが発動されたときは、9枚以上の字牌を含む配牌が、手牌管理テーブル306に設定される。ステップS18では、当該ユーザに付与されているスキルポイントを更新する。具体的には、スキルポイントは、ステップS12の処理によって消費量が変更されなかった場合に40ポイント低減され、ステップS12の処理によって消費量が変更された場合に25ポイント低減される。
ステップS16において、当該配牌スキルの発動条件が成立していると判定されなかったときは、ステップS19に進み、無作為な配牌を当該ユーザに対して実行するとともに、当該配牌を当該ユーザに対して手牌管理テーブル306に設定する。
ステップS18またはS19の処理が完了すると、ステップS20に進む。ステップS21では、当該4人のユーザの全てが指定されたか否かを、ステップS14の処理結果に基づいて判定する。当該4人のユーザの全てが指定されたと判定されなかったときは、ステップS14に戻る。これに対して、当該4人のユーザの全てが指定されたと判定されたときは、ステップS21に進み、図15(A)に示す対局画面をタッチスクリーン15に表示する。
図15(A)を参照して、対局画面の中央やや上段には、麻雀卓が操作キャラクタ即ち自家の視点(斜め上)で表示される。麻雀卓の中央には、自家および他家の捨て牌を表示するための河エリアRVが割り当てられており、河エリアRVの下側には、自家の手牌を表示するための手牌エリアHAが割り当てられている。また、手牌エリアHAの下側には、自家に関連付けられたツモスキルに対応するツモスキルアイコンを表示するためのツモスキルエリアTAが割り当てられている。
図8に戻って、ステップS22では、当該4人のユーザ間の引き牌の順番等を仕切りながら対局を進める。いずれかのユーザによりツモスキルが発動されたことがユーザ側プログラムから通知された場合、ステップS22では、スキルポイントを更新する処理も実行する。スキルポイントは、ステップS12の処理によって消費量が変更されなかった場合に25ポイント低減され、ステップS12の処理によって消費量が変更された場合に15ポイント低減される。
ステップS23では、当該4人のユーザのうちのいずれかのユーザが上がったか又は今回の対局が流局となったか否かを判定する。いずれかのユーザが上がったか又は今回の対局が流局となったと判定されなければ、ステップS22に戻る。一方、いずれかのユーザが上がったか又は今回の対局が流局となったと判定されると、ステップS24で清算を行う。例えば、上がりを宣言したユーザに対して、上がり役に応じた点数が付与される。この結果、当該4人のユーザの順位や、当該4人のユーザ間の点数差が特定される。今回の管理者用対局処理は、ステップS24の処理の後に終了する。
図9を参照して、ステップS31では、ステップS17またはS19の処理によって自ユーザに配られた牌を手牌エリアHAに表示する。牌は、例えば図15(A)に示すように表示される。ステップS32では、自ユーザの順番が到来したか否かをステップS22の処理結果に基づいて判定し、当該順番が到来したと判定されると、ステップS33に進む。ステップS33では、牌山から牌をツモり、ツモった牌を手牌エリアHAに表示する。
ステップS34では、複数種類の役の各々を成立させる牌の組合せと手牌エリアHA上の牌の組合せとを照合することにより、当該手牌エリアHA上の牌の組合せについて役が成立しているか否かを判定する。当該役が成立していると判定されたときは、ステップS35に進み、ツモ上がりまたはロン上がりを宣言する操作がユーザによって行われたか否かをタッチスクリーン15に対する操作入力に基づいて判定する。当該ツモ上がりまたはロン上がりを宣言する操作が行われたと判定されると、ステップS36に進み、ツモ上がりまたはロン上がりを管理者側プログラムに通知する。ユーザ用対局処理は、当該通知の後に終了する。
ステップS34において役が成立していると判定されなかったとき、又はステップS35において上がりを宣言する操作が行われたと判定されなかったときは、ステップS37に進む。ステップS37では、手牌エリアHA上の複数の手牌のうちのいずれかの手牌に対するタッチ操作が行われたか否かを、タッチスクリーン15に対する操作入力に基づいて判定する。
当該手牌に対するタッチ操作が行われたと判定されなければ、ステップS40に進み、副露またはリーチを宣言する操作が行われたか否かをタッチスクリーン15に対する操作入力に基づいて判定する。副露またはリーチを宣言する操作が行われたと判定されなかったときは、ステップS34に戻る。一方、副露またはリーチを宣言する操作が行われたと判定されたときは、ステップS41で当該操作に対応する処理を実行する。行われた操作が副露を宣言する操作であれば、副露情報が手牌管理テーブル306に設定される。ステップS41の処理が完了すると、ステップS42で処理の完了を管理者側プログラムに通知し、その後にステップS32に戻る。
ステップS37において、いずれかの手牌に対するタッチ操作が行われたと判定されたときは、ステップS38に進み、ガイド枠GFをタッチスクリーン15に表示する。ステップS39ではタッチされた手牌を河エリアRV側に拡大表示する。
したがって、図15(A)に示すように、一萬牌がタッチされると、当該牌がタッチ位置よりも上側の位置に拡大表示される。また、図15(B)に示すように、一索牌がタッチされると、当該牌がタッチ位置よりも上側の位置に拡大表示される。
ステップS43では、タッチ位置が移動したか否かをタッチスクリーン15に対する操作入力に基づいて判定する。当該タッチ位置が移動したと判定されたときは、ステップS44に進み、現在のタッチ位置は手牌エリアHAを含んで画面下部に広がる下部エリア内の位置であるか否かを判定する。
現在のタッチ位置は当該下部エリア内の位置であると判定されると、ステップS45に進み、拡大表示する牌を当該タッチ位置の鉛直方向に位置する牌に変更する。牌の変更が完了すると、ステップS43に戻る。なお、現在のタッチ位置は当該下部エリア内の位置であると判定されなかったときは、ステップS45の処理を実行することなくステップS43に戻る。
したがって、図15(A)に示す一萬牌が拡大表示されている状態でタッチ位置が右側に移動されると、一萬牌が元の位置に通常表示され、右隣りの一索牌がタッチ位置よりも上側の位置に拡大表示される。また、図15(B)に示す一索牌が拡大表示されている状態でタッチ位置が左側に移動されると、一索牌が元の位置に通常表示され、左隣りの一萬牌がタッチ位置よりも上側の位置に拡大表示される。なお、タッチ位置が河エリアRVに移動すると、ガイド枠GFは強調表示される。
ステップS43においてタッチ位置が移動したと判定されなかったときは、ステップS46に進み、タッチ操作が解除されたか否かをタッチスクリーン15に対する操作入力に基づいて判定する。当該タッチ操作が解除されたと判定されなかったときはステップS43に戻る。一方、当該タッチ操作が解除されたと判定されたときは、ステップS47に進み、ガイド枠GFを非表示とする。
ステップS48では、直前のタッチ位置は河エリアRV内の位置であるか否かを、タッチスクリーン15に対する操作入力に基づいて判定する。直前のタッチ位置は河エリアRV内の位置であると判定されなかったときは、ステップS53で牌の拡大表示を終了し、その後にステップS34に戻る。この結果、拡大表示されていた牌は、元の位置に通常表示される。
ステップS48において、直前のタッチ位置は河エリアRV内の位置であると判定されたときは、ステップS49に進み、直前にタッチされていた手牌を対象とする捨て牌を実行する。即ち、捨て牌は、いずれかの牌が拡大表示されている状態でタッチ位置を河エリアRVにスライドさせたときに実行される。ステップS50では、捨てられた手牌を河エリアRVに移動させて縮小表示する。
ステップS51では、手牌管理テーブル306を更新する。具体的には、ツモ切りが行われなかったときは、捨て牌後の手牌を手牌管理テーブル306に登録する。一方、ツモ切りが行われたときは、ツモる前の手牌と同じ牌を手牌管理テーブル306に登録する。ステップS51の処理が完了すると、ステップS52で処理の完了を管理者側プログラムに通知し、その後にステップS32に戻る。
図11を参照して、ステップS61では、自ユーザに関連付けられたツモスキルが発動可能であるか否かを、当該ツモスキルに関連付けられたスキル発動条件に基づいて判定する。例えば、自ユーザに関連付けられたツモスキルが必殺河拾いであり、スキル発動条件として緩和条件が設定されていれば、自ユーザの手牌が2シャンテン以上であるか否かを、手牌管理テーブル306に登録された手牌に基づいて判定する。
当該ツモスキルが発動可能であると判定されなかったときは、ステップS62に進み、ツモスキルアイコンを通常表示する。ステップS63では、捨て牌が実行されたか否かをステップS49の処理の状況に基づいて判定する。捨て牌が実行されたと判定されると、ステップS61に戻る。
ステップS61において、当該ツモスキルが発動可能であると判定されたときは、ステップS64に進み、ツモスキルアイコンをハイライト表示させる。ステップS65では、ハイライトされているツモスキルアイコンに対するタッチ操作が行われたか否かを、タッチスクリーン15に対する操作入力に基づいて判定する。
当該タッチ操作が行われたと判定されなかったときは、ステップS66およびS67の処理を実行することなくステップS68に進む。一方、当該タッチ操作が行われたと判定されたときは、ステップS66で当該ツモスキルを発動させ、ステップS67でツモスキルの発動を管理者側プログラムに通知してから、ステップS68に進む。
このため、例えば必殺河拾いが発動されたときは、捨て牌を河から拾い、代わりに手牌を1枚河に置く処理がステップS66で実行される。なお、必殺河拾いが発動されたときは、手牌管理テーブル306に登録された手牌を更新する処理も、ステップS66で実行される。
ステップS68では、捨て牌が実行されたか否かをステップS49の処理の状況に基づいて判定する。捨て牌が実行されたと判定されなかったときはステップS65に戻り、捨て牌が実行されたと判定されたときはステップS61に戻る。
図12を参照して、救済処理は、図8に示す管理者用対局処理が終了する毎に実行される。ステップS71では、今回の対局に負けた3人のユーザのうちのいずれかのユーザを指定する。ステップS72では、指定したユーザの手牌はテンパイ状態であるか否かを手牌管理テーブル306に基づいて判定する。当該手牌はテンパイ状態であると判定されると、ステップS73に進み、手牌管理テーブル306に基づいて当該ユーザの待ち状態と待ち牌とを特定する。
例えば、当該ユーザの手牌が、三萬牌と四萬牌とを含むテンパイ状態であれば、順子待ちが待ち状態として特定され、二萬牌および五萬牌が待ち牌として特定される。また、当該ユーザの手牌が、2枚の四筒牌と2枚の七索牌とを含むテンパイ状態のときは、刻子待ちが待ち状態として特定され、四筒牌および七索牌が待ち牌として特定される。
ステップS74では、当該ユーザから見えていない手牌(即ち、負けた他のユーザの手牌)と牌山の牌のうちから、当該待ち牌を特定する。ステップS75では、ステップS74で特定された待ち牌の数が所定数以上であるか否かを、ステップS74の処理結果に基づいて判定する。
なお、当該所定数の値は、当該ユーザの待ち状態に応じた値に設定される。即ち、当該所定数の値は、当該待ち状態が順子待ちの場合に例えば4に設定され、当該待ち状態が刻子待ちの場合に例えば2に設定される。順子は刻子よりも構成し易いため、役が成立することに対する期待度が待ち状態に応じて大きく相違することがないように、当該所定数の値を待ち状態に応じた値に設定するようにしている。
ステップS75において、当該待ち牌の数が所定数以上であると判定されたときは、ステップS76に進み、理不尽値/親かぶり回数管理テーブル305において当該ユーザに関連付けられている理不尽値を、1だけ増大させる。即ち、当該ユーザの理不尽値は、当該ユーザがテンパイしているとともに、当該ユーザから見えていない牌に当該ユーザの待ち牌が多く含まれる状況で、他のユーザに上がられたときに、増大する。
ステップS76の処理が完了すると、ステップS77に進む。一方、ステップS75において、当該待ち牌の数が所定数以上であると判定されなかったときは、ステップS76の処理を実行することなく、ステップS77に進む。
ステップS77では、当該ユーザが待ち牌を引いて上がっていたら獲得できた点数を特定する。点数は、待ち牌(即ち上がり役)に応じて異なる可能性があるため、ステップS77では、最も低い上がり役の点数を特定する。また、当該ユーザが副露を宣言していなければ、当該点数は、裏ドラも考慮して特定する。
ステップS78では、当該点数が所定点数(例えば8000点)以上であるか否かを、ステップS77の処理結果に基づいて判定する。当該点数が当該所定点数以上であると判定されたときは、ステップS79に進み、理不尽値/親かぶり回数管理テーブル305において当該ユーザに関連付けられている理不尽値を、1だけ増大させる。即ち、当該ユーザの理不尽値は、当該ユーザが上がった場合の得点期待値が大きい状況で他のユーザに上がられたときにも増大する。
ステップS79の処理が完了すると、ステップS80に進む。一方、ステップS78において、当該点数が所定点数以上であると判定されなかったときは、ステップS79の処理を実行することなく、ステップS80に進む。
ステップS80では、当該ユーザが親かぶりされたか否かを、今回の対局における当該ユーザのポジション(親/子の別)と今回の対局に勝ったユーザの上がり方(ロン上がり/ツモ上がりの別)とに基づいて判定する。当該ユーザが親かぶりされたと判定されたときは、ステップS81に進み、理不尽値/親かぶり回数管理テーブル305において当該ユーザに関連付けられている親かぶりの回数を1だけ増大させる。
ステップS81の処理が完了すると、ステップS82に進む。一方、ステップS80において、当該ユーザが親かぶりされたと判定されなかったときは、ステップS81の処理を実行することなく、ステップS82に進む。
ステップS82では、今回の対局に負けた3人のユーザの全てが指定されたか否かを、ステップS71の処理結果に基づいて判定する。当該3人のユーザの全てが指定されたと判定されなかったときはステップS71に戻り、当該3人のユーザの全てが指定されたと判定されたときはステップS83に進む。
ステップS83では、今回の対局に勝ったユーザのテンパイ時の待ち状態を手牌管理テーブル306に基づいて特定する。ステップS84では、当該待ち状態がカンチャン待ちであるか否かをステップS83の処理結果に基づいて判定する。当該待ち状態がカンチャン待ちであれば、ステップS85に進み、牌山の牌の数が所定数(例えば48枚)以上であるか否かを、ステップS22の処理結果に基づいて判定する。
当該牌の数が当該所定数以上であると判定されたときは、ステップS86に進み、理不尽値/親かぶり回数管理テーブル305に設定されている理不尽値のうち、今回の対局に負けた3人のユーザの各々に関連付けられている理不尽値を、1だけ増大させる。即ち、負けた3人のユーザの各々の理不尽値は、牌山に多くの牌が残っているとともに、他のユーザが上がり難い待ち状態から上がったときにも、増大する。ステップS86の処理が完了すると、ステップS87に進む。
なお、ステップS84において当該待ち状態がカンチャン待ちであると判定されなかったとき、またはステップS85において当該牌の数が所定数以上であると判定されなかったときは、ステップS86の処理を実行することなく、ステップS87に進む。
ステップS87では、理不尽値/親かぶり回数管理テーブル305に設定されている理不尽値のうち、今回の対局に勝ったユーザの理不尽値を1だけ低減させる。ステップS88では、今回の対局に臨んだ4人のユーザのうちのいずれかのユーザを指定する。ステップS89では、当該ユーザに関連付けられている親かぶり回数が所定回数(例えば2回)以上であるか否かを、理不尽値/親かぶり回数管理テーブル305に基づいて判定する。
当該親かぶり回数が所定回数以上であると判定されたときは、ステップS90に進み、理不尽値/親かぶり回数管理テーブル305において当該ユーザに関連付けられている理不尽値を、1だけ増大させる。ステップS91では、理不尽値/親かぶり回数管理テーブル305において当該ユーザに関連付けられている親かぶり回数を0に設定し、その後にステップS92に進む。なお、ステップS89において、当該ユーザの親かぶり回数が所定回数以上であると判定されなかったときは、ステップS90およびS91の処理を実行することなく、ステップS92に進む。
ステップS92では、今回の対局に臨んだ4人のユーザの全てが指定されたか否かを、ステップS88の処理結果に基づいて判定する。当該4人のユーザの全てが指定されたと判定されなかったときはステップS88に戻り、当該4人のユーザの全てが指定されたと判定されたときは、今回の救済処理を終了する。
図14に示すレーティング補正処理は、図9および図10に示すユーザ用対局処理が終了する毎に実行される。ステップS101では、今回の対戦(一荘戦)が終了したか否かを、ゲームの進行状況を表すパラメータに基づいて判定する。今回の対戦が終了したと判定されたときは、ステップS102に進み、今回の対戦における自ユーザの順位を順位管理テーブル307に登録する。ステップS103では、直近の4戦の順位を当該順位管理テーブル307に基づいて特定する。
ステップS104では、当該4戦の順位に基づいて、レーティング管理テーブル303に登録された補正値を更新する。具体的には、当該4戦の順位が低いほど補正値をマイナス方向に増大させる。今回のレーティング補正処理は、ステップS104の処理が完了したとき、またはステップS101において今回の対戦が終了したと判定されなかったときに、終了する。
<本実施形態の効果>
本実施形態によれば、麻雀ゲームにおける自家の有利度合い(具体的にはスキルポイントの消費量およびスキル発動条件)は、自家に関連付けられている理不尽値に基づいて制御されるところ、当該理不尽値は、他家の手牌の組合せが役を成立させる組合せになったときの自家の手牌の組合せ、即ち敗北時の自家の手牌の組合せに基づいて更新される。
具体的には、敗北時の自家の手牌の組合せが役を成立させる組合せとなることに対する期待度が所定度合いよりも高いときには、所定度合い未満であったときよりも麻雀ゲームにおける自家の有利度合いが向上するように、理不尽値が更新される。
これによって、今回の対局の理不尽さを次回以降の対局において是正することが可能となり、ひいては理不尽な対局が行われることによる麻雀ゲームの興趣の低下を抑えることが可能となる。
また、本実施形態によれば、理不尽値は、敗北時の手牌の組合せが役を成立させる組合せとなるために必要な牌の数が所定数(=1)未満のときにも更新される。これによって、役を成立させる組合せとなるために必要な数を理不尽値に反映させることができる。
さらに、本実施形態によれば、敗北時の自家の手牌の組合せが役を成立させる組合せとなることに対する期待度は、ユーザに晒されていない牌(上がれなかった他家の手牌および牌山の牌)に当該必要な牌が残っているか否かに基づいて特定される。これによって、当該期待度を客観的に特定することができる。
また、本実施形態によれば、自家の手牌の組合せについて役が成立したならば付与されていた点数の大きさに応じて、理不尽値が更新される。これによって、当該点数の大きさを理不尽値に反映させることができる。
さらに、本実施形態によれば、親かぶりの回数に基づいて理不尽値が更新される。これによって、親かぶりの回数を理不尽値に反映させることができる。
また、本実施形態によれば、自家には麻雀ゲームを有利に進めるためのスキルが関連付けられており、スキルの発動に関する有利度合い(具体的にはスキルポイントの消費量およびスキル発動条件)が、理不尽値に基づいて制御される。この結果、自家は、スキルの発動により対局を有利に進めることが可能となる。
さらに、本実施形態によれば、自ユーザの複数回の対戦履歴が特定の対戦結果となっているときに、当該特定の対戦結果となっていないときよりも麻雀ゲームにおける自ユーザの有利度合いが向上するように、複数のユーザのマッチングが制御される。これによって、今回の対戦の理不尽さを次回以降の対戦において是正することが可能となり、ひいては理不尽な対戦が行われることによる麻雀ゲームの興趣の低下を抑えることが可能となる。
<変形例>
以上説明した実施形態の変形例などを以下に列挙する。
(1) 上記実施形態においては、他ユーザによって操作されるキャラクタを対戦相手として想定しているが、対戦相手は、NPC(ノンプレイヤキャラクタ)であってもよい。この場合、1〜3人のNPCが、1〜3人の他ユーザにより操作される1〜3人のキャラクタに代わって対局に臨むことになる。
(2) 上記実施形態においては、自家の理不尽値を増大させたか否かを判定するにあたっては、他家がスキルを発動して上がったか、それともスキルを発動せずに上がったかは、何ら考慮されない。しかし、他家が上がるまでの過程においてスキルを発動させたか否かに応じて理不尽値を増大させるようにしてもよい。例えば、他家がスキルを発動して上がった場合には、理不尽値は増大させないようにしてもよい。
(3) 上記実施形態においては、自家の理不尽値に基づいて制御される有利度合いとしては、自家に付与されているスキルポイントの消費量を想定している。しかし、自家の理不尽値に基づいて制御される有利度合いとしては、(3−1)当該消費量に代えてまたは当該消費量とともに、当該スキルポイントの最大値、当該スキルポイントの回復量等であってもよい。また、(3−2)操作キャラクタの強さを総合的に示す雀力というパラメータを各家に関連付け、当該雀力の大小関係に応じて各家のスキルポイントを補正することとした上で、当該雀力を自家の理不尽値に基づいて制御するようにしてもよい。この場合、当該雀力が当該有利度合いの1つとして位置づけられる。
(4) 上記実施形態においては、自ユーザの複数回の対戦履歴が特定の対戦結果となっているときに、当該特定の対戦結果となっていないときよりも麻雀ゲームにおける自ユーザの有利度合いが向上するように、複数のユーザのマッチングを制御するようにしている。しかし、複数のユーザのマッチングにおける自家の有利度合いは、当該対戦履歴に基づいて制御する代わりに、あるいは当該対戦履歴に基づいて制御するとともに、理不尽値に基づいて制御するようにしてもよい。
(5) 上記実施形態においては、複数のユーザが臨む対戦として一荘戦を想定しているが、対戦は、半荘戦であってもよい。
(6) 上記実施形態においては、自家が親として臨んだ対局において子である他家がツモ上がりした回数(親かぶり回数)に応じて、自家の理不尽値を増大させるようにしている。しかし、親である自家の捨て牌を対象として他家がロン上がりした回数に応じて、自家の理不尽値を増大させるようにしてもよい。
(7) 上記実施形態においては、スキルポイントの消費量が変更されたときに、理不尽値を1だけ低減するようにしている(図8のステップS12参照)。しかし、当該消費量が変更されたときではなく、スキルが実際に発動されたときに、理不尽値を1だけ低減するようにしてもよい。
(8) 上記実施形態においては、ユーザの手牌がテンパイ状態であるときに、図12のステップS72からステップS73に進むようにしている。しかし、例えば、シャンテン数が2の状態など、テンパイ状態と異なる状態のときに、ステップS72からステップS73に進むようにしてもよい。
(9) 上記実施形態においては、図12のステップS75で比較対象となる所定数の値は、ユーザの待ち状態に応じた値に設定される。しかし、当該所定数の値は、当該ユーザが親であるか否かで異ならせるようにしてもよい。
(10) 上記実施形態においては、図12のステップS78で比較対象となる点数は、固定的(8000点)である。しかし、当該点数は、当該ユーザが親であるか否かで異ならせるようにしてもよい。
(11) 上記実施形態においては、1以上の値を示す理不尽値が関連付けられたユーザについては、当該ユーザのスキル発動条件を緩和条件に変更し(図8のステップS13参照)、これによって当該ユーザに関連付けられているスキルを発動し易くするようにしている。しかし、理不尽値が1以上であることに応じてスキル発動条件を緩和条件に変更する代わりに、理不尽値が1以上であるときに特定のアイテムをユーザに付与し、当該アイテムを消費する操作が当該ユーザにより行われたときにスキル発動条件を緩和条件に変更するようにしてもよい。
(12) 上記実施形態においては、対戦履歴に基づいて直近の4戦における自ユーザの順位が低いほど、レーティング管理テーブル303に登録された補正値をマイナス方向に増大させ、自ユーザよりも弱いユーザをマッチングにより選定するようにしている。しかし、対戦履歴に基づいて、例えば、半荘(一連の対戦)の間に自ユーザが一度も勝てなかったとき、または自ユーザが親であるときに他ユーザがツモ上がりまたはロン上がりした回数が所定回数以上となったときに、レーティング管理テーブル303に登録された補正値をマイナス方向に増大させるようにしてもよい。
(13) 上記実施形態においては、麻雀ゲームを想定しているが、これに代えてポーカー、ババ抜き等のカードゲームや、こいこい等の花札ゲームを想定するようにしてもよい。ポーカーを想定する場合、カードに描かれたスペードのジャック等の模様が識別情報に相当し、フルハウスやストレートフラッシュ等が役に相当する。また、こいこいを想定する場合、猪鹿蝶や月見で一杯等が役に相当する。
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
(付記1):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、および入力部を備えるコンピュータ(図1のユーザ端末100)において実行されるゲームプログラムであって、前記ゲームプログラムに基づくゲームは、ユーザによって操作される操作キャラクタを含む複数のキャラクタが対戦する対戦ゲームであり、前記ゲームプログラムは、前記プロセッサに、予め定められた複数の識別情報のうちから前記操作キャラクタが所有する識別情報の組合せを特定する第1ステップ(S31、S33)と、前記第1ステップにより特定された識別情報の組合せが予め定められた組合せとなることにより特典を付与する第2ステップ(S26)と、前記操作キャラクタ以外のキャラクタが所有する識別情報の組合せが予め定められた組合せとなったときに前記第1ステップにより特定されている敗北時の識別情報の組合せに基づいて、前記操作キャラクタに関連付けられている特定パラメータ(理不尽値)を更新する第3ステップ(S72〜S79)と、前記特定パラメータに基づいて、前記ゲームの有利度合いを制御する第4ステップ(S12、S13)とを実行させ、前記第3ステップは、敗北時の識別情報の組合せが特定の組合せとなることに対する期待度が所定度合いよりも高いときには、所定度合い未満であったときよりも前記ゲームの有利度合いが向上するように、前記特定パラメータを更新する。
(付記2):
(付記1)において、前記第3ステップは、敗北時の識別情報の組合せが前記特定の組合せとなるために必要な識別情報の数が所定数未満であったとき(S72)に前記特定パラメータを更新する。
(付記3):
(付記2)において、前記第3ステップは、前記予め定められた複数の識別情報のうち前記ユーザに晒されていない識別情報に前記必要な識別情報が残っているか否かに基づいて、敗北時の識別情報の組合せが前記特定の組合せとなることに対する期待度を特定する(S74、S75)。
(付記4):
(付記1)から(付記3)のいずれかにおいて、前記第3ステップは、前記期待度の対象である特定の組合せとなることにより前記第2ステップにより付与される特典の大きさに応じて、前記特定パラメータを更新する(S77〜S79)。
(付記5):
(付記1)から(付記4)のいずれかにおいて、前記ゲームプログラムは、前記プロセッサに、前記複数のキャラクタのうちから他のキャラクタよりも有利となるオーナーキャラクタを決定するとともに、予め定められた切替条件が成立して対戦を1回消化する毎に、前記複数のキャラクタ各々に定められている順序に従って、現在のオーナーキャラクタを基準として次のキャラクタを次回のオーナーキャラクタに切り替える第5ステップ(S15)を実行させ、前記第3ステップは、前記操作キャラクタがオーナーキャラクタとなる対戦のうち前記操作キャラクタが負けた対戦の数に基づいて、前記特定パラメータを更新する(S80、S81、S89、S90)。
(付記6):
(付記1)から(付記5)のいずれかにおいて、前記操作キャラクタには、前記ゲームを有利に進めるためのスキルが関連付けられており、前記第4ステップは、前記特定パラメータに基づいて、スキルの発動に関する有利度合いを制御する(S12、S13)。
(付記7):
(付記1)から(付記6)のいずれかにおいて、前記第4ステップは、前記特定パラメータに基づいて、前記複数のキャラクタのマッチングにおける有利度合いを制御する。
(付記8):
(付記1)から(付記7)のいずれかにおいて、前記ゲームプログラムは、前記プロセッサに、複数回の対戦履歴が特定の対戦結果となっているときに、当該特定の対戦結果となっていないときよりも前記ゲームの有利度合いが向上するように前記複数のキャラクタのマッチングを制御する第6ステップ(S102〜S104、S02)を実行させる。
(付記9):
(付記8)において、前記特定の対戦結果は、一連の対戦ゲームを開始してから当該対戦ゲームの終了条件が成立するまでに前記操作キャラクタが一度も勝てなかった対戦結果、および前記操作キャラクタが他のキャラクタよりも有利となるオーナーキャラクタであるときに他のキャラクタが所有する識別情報の組合せが前記予め定められた組合せとなった回数が所定回数以上となる対戦結果のうちの少なくともいずれか一方である。
(付記10):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、および入力部を備えるコンピュータ(図1のユーザ端末100)において実行されるゲーム方法であって、前記ゲームプログラムに基づくゲームは、ユーザによって操作される操作キャラクタを含む複数のキャラクタが対戦する対戦ゲームであり、前記ゲーム方法は、前記コンピュータが、予め定められた複数の識別情報のうちから前記操作キャラクタが所有する識別情報の組合せを特定する第1ステップ(S31、S33)と、前記第1ステップにより特定された識別情報の組合せが予め定められた組合せとなることにより特典を付与する第2ステップ(S26)と、前記操作キャラクタ以外のキャラクタが所有する識別情報の組合せが予め定められた組合せとなったときに前記第1ステップにより特定されている敗北時の識別情報の組合せに基づいて、前記操作キャラクタに関連付けられている特定パラメータ(理不尽値)を更新する第3ステップ(S72〜S79)と、前記特定パラメータに基づいて、前記ゲームの有利度合いを制御する第4ステップ(S12、S13)とを備え、前記第3ステップは、敗北時の識別情報の組合せが特定の組合せとなることに対する期待度が所定度合いよりも高いときには、所定度合い未満であったときよりも前記ゲームの有利度合いが向上するように、前記特定パラメータを更新する。
(付記11):
本開示に示す一実施形態のある局面によれば、情報処理装置(図1のユーザ端末100)であって、ゲームプログラムを記憶する記憶部(図2の120)と、前記ゲームプログラムを実行することにより、前記情報処理装置の動作を制御する制御部(図2の110)とを備え、前記ゲームプログラムに基づくゲームは、ユーザによって操作される操作キャラクタを含む複数のキャラクタが対戦する対戦ゲームであり、前記制御部は、予め定められた複数の識別情報のうちから前記操作キャラクタが所有する識別情報の組合せを特定する第1ステップ(S31、S33)と、前記第1ステップにより特定された識別情報の組合せが予め定められた組合せとなることにより特典を付与する第2ステップ(S26)と、前記操作キャラクタ以外のキャラクタが所有する識別情報の組合せが予め定められた組合せとなったときに前記第1ステップにより特定されている敗北時の識別情報の組合せに基づいて、前記操作キャラクタに関連付けられている特定パラメータ(理不尽値)を更新する第3ステップ(S72〜S79)と、前記特定パラメータに基づいて、前記ゲームの有利度合いを制御する第4ステップ(S12、S13)とを実行し、前記第3ステップは、敗北時の識別情報の組合せが特定の組合せとなることに対する期待度が所定度合いよりも高いときには、所定度合い未満であったときよりも前記ゲームの有利度合いが向上するように、前記特定パラメータを更新する。
〔ソフトウェアによる実現例〕
制御部110の制御ブロック(特に、作用受付部111、端末処理部112、タイマー部113、端末判定部114、表示制御部115、報酬計算部116、および送受信部117)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。