JP4618667B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP4618667B2
JP4618667B2 JP2004170166A JP2004170166A JP4618667B2 JP 4618667 B2 JP4618667 B2 JP 4618667B2 JP 2004170166 A JP2004170166 A JP 2004170166A JP 2004170166 A JP2004170166 A JP 2004170166A JP 4618667 B2 JP4618667 B2 JP 4618667B2
Authority
JP
Japan
Prior art keywords
program
ram
hearing
game
self
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004170166A
Other languages
English (en)
Other versions
JP2005348808A (ja
Inventor
三義 島田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sammy Corp
Original Assignee
Sammy Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sammy Corp filed Critical Sammy Corp
Priority to JP2004170166A priority Critical patent/JP4618667B2/ja
Publication of JP2005348808A publication Critical patent/JP2005348808A/ja
Application granted granted Critical
Publication of JP4618667B2 publication Critical patent/JP4618667B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は雀球遊技機等の遊技機に関し、この遊技機の動作を制御するプログラムのうち、特に、使用頻度が高く、かつ、高速で処理する必要があるプログラムモジュールについて高速処理を行うように配慮した遊技機に関するものである。
雀球遊技機やパチンコ遊技機等の遊技機においては、遊技機の動作を制御するプログラムを構成するプログラムモジュールのうち、特に、高速で処理を行う必要があるモージュールが存在する。例えば、パチンコ遊技機においては、大当たりを決定するための乱数を発生させるプログラムモジュール、雀球遊技機においては、遊技者の手牌について上がり役の組合せ、あるいは聴牌の状態になっているか否かを判定するためのプログラムモジュールである。これらのプログラムモジュールに高速化が要求される理由は、近年の遊技機は各種の演出画像の表示が重要視されているので、これらのプログラムモジュールを高速で処理しないと、遊技者の遊技機に対する操作と演出画像の表示とにタイミングのずれが生じ、遊技者に違和感を与える可能性が発生するからである。
雀球遊技機やパチンコ遊技機においてその動作を制御する制御基板は、8ビット、16ビット、あるいは32ビットのCPU、およびこのCPUの外部にバス線を介して接続されたROM、RAM、各種のインターフェース用ICが搭載されたマイクロコンピュータから構成されている。このような制御基板においては、遊技機の動作を制御するプログラムはROMに記憶され、RAMはこのプログラムが実行されるときのワークエリア(計算領域、データ読込み領域等)として利用される。そして、CPUは、ROMに記憶されているオブジェクトプログラムの命令語をフェッチすることにより遊技機の制御が行なわれるようになっている。
近年、LSIの製造技術の発展に伴い、CPUチップ内にRAMやROMを内蔵させた(以下、内蔵RAM、内蔵ROMという)CPUが開発され、実用化されている。この内蔵RAMを備えたCPUにおいては、この内蔵RAMにもアドレス空間が設定されているが、その記憶容量は2Kb〜32Kb程度であり、小さい容量になっている。しかし、この内蔵RAMにプログラムを記憶させると、内蔵RAMに記憶した命令語をCPUにフェッチする速度は、CPUの外部に設けたROMから命令語をフェッチする速度より早くなる。このため、内蔵RAMや内蔵ROMにプログラムやデータを記憶することにより、プログラムの処理速度を高速化する等の技術が提案されている。この内蔵RAMにプログラムを記憶させるようにした技術として、下記の特許文献1〜3が提案されている。
特開平8−66524号公報(明細書第3頁〜第8頁、図4) 特開平11−175115号公報(明細書第3頁〜第5頁、図1) 特開2004−112640号公報(明細書第5頁〜第16頁、図2、図6)
上記特許文献1には、検定に合格した遊技プログラムを容易に解析できなくし、かつ、遊技プログラムの開発を簡略化するために、遊技関数のオブジェクトコードを内蔵RAMに格納し、この内蔵RAMに展開されたオブジェクトプログラムを実行させることが記載されている。
上記特許文献2には、プログラマブルコントローラの機能命令を高速で処理することを目的として、機能命令語の出現頻度を調べ、この出現頻度の高い機能命令の処理ルーチンをCPUの外部に設けられているメモリから機能命令を実行するCPUに内蔵するRAMに格納することが記載されている。さらに、特許文献2には、機能命令内の処理ルーチンの飛び先アドレスをその機能命令の処理ルーチンを格納した内蔵RAMのアドレスに変更することが開示されている。
上記特許文献3には、ISDN網に接続されたファクシミリ等の通信端末装置の省電力を目的として、この通信端末装置が受信の待機中は、受信判断プログラムをCPU内蔵ROMあるいはCPU内蔵RAMで作動させることが記載されている。さらに、特許文献3には、ISDN網制御部は、常時電源ユニットから給電される素子と、SUB電源ユニットから給電される素子グループに分け、待機中は常時電源ユニットのみでCPU、出力ポート等のみを作動させ、この待機中のプログラム(受信判断プログラム)はCPU内蔵ROMあるいはCPU内蔵RAMで作動させることが開示されている。また、外部ROMに格納されている受信判断プログラムをCPU内蔵RAMにダウンロードするタイミングは、ISDN網制御部の初期化を行なう場合と待機モードへの移行時に行なうことが記載されている。
特許文献1に記載の発明は、パチンコ機等の遊技機制御装置において、検定に合格した遊技プログラムを容易に解析できなくすることを目的とするものであって、遊技プログラムのうち、高速処理が要求されるプログラムモジュールについてその実行速度を高速化しようとする技術ではない。
上記特許文献2に記載の発明は、プログラマブルコントローラのプログラムにおいて、その出現頻度の高い機能命令の処理ルーチンを内蔵RAMに格納することにより処理速度の向上を計ろうとするものである。しかし、このプログラマブルコントローラとマイクロコンピュータを応用した制御装置のプログラム(アセンブラ、C言語等)とでは、プログラムの構成およびその開発方法は全く異なっている。例えば、マイクロコンピュータのプログラム開発においては、CPUのアドレス空間の何番地に如何なる機能のプログラムを記憶させるかを設定することができる。すなわち、アセンブラ、C言語等でプログラムを開発したマイクロコンピュータからなる制御装置においては、特許文献2に記載されている「機能命令内の処理ルーチンの飛び先アドレスをその機能命令の処理ルーチンを格納した内蔵RAMのアドレスに変更」する処理を行う必要はない。すなわち、マイクロコンピュータのプログラム開発では、ソースプログラムを開発する段階から、内蔵RAMに格納する飛び先アドレス(ラベル名)を参照してソースプログラムを開発することができるので、上記のように、アドレス変更を行う必要はない。
上記特許文献3に記載の発明は、ファクシミリ等の通信端末装置において、待機中は省電力を実施するためにこの待機中においてのみ実行させることが要求される全プログラムを内蔵RAMまたは内蔵ROMに格納し、待機中はこの内蔵RAMまたは内蔵ROMに格納したプログラムを実行させるようにしたものである。従って、特許文献3に記載の発明は、CPUの外部に記憶されプログラムのうち、高速処理が要求されるプログラムモジュールを内蔵RAMまたは内蔵ROMに格納することにより、プログラムの高速処理を行う技術に関するものではない。
遊技機の動作を制御するプログラムにおいては、短時間の周期で同一のプログラムモジュールが繰り返して実行される場合が多い。このようなプログラムモジュールには、特に高速な処理が要求されるモジュールがある。高速処理が要求されるプログラムモジュールとしては、前記したように、パチンコ遊技機においては乱数を発生させるためのプログラムである。
一方、雀球遊技機においては、麻雀の知識あるいは雀球遊技機の遊技経験が少ない遊技者に対して、遊技者の現在の手牌について、遊技者が捨て牌あるいは自摸牌の操作(遊技球を発射する操作)を行う前に、「捨てれば聴牌」する麻雀牌(以下、牌という)、「自摸れば上がり」または「自摸れば聴牌」する牌の有無を判定して、遊技者に捨て牌、あるいは自摸すべき牌を画面表示やランプ表示により適切に指導するアシスト機能が要求される。この理由は、麻雀遊技においては上がり役を完成させるための上がり役の組合せが多数あるため、麻雀の知識あるいは雀球遊技機の遊技経験が少ない遊技者は、現在の14個または13個の手牌から、即座に、適切な捨て牌あるいは自摸牌を選択することは不可能であるからである。
このようなアシスト機能を備えた雀球遊技機において、遊技者の現在の手牌が14個のとき、この手牌から何れか1個の牌を捨て牌として捨てたと仮定したきに13個になった手牌が聴牌するか否かの判定、あるいは、現在の手牌が13個のとき、この手牌に何れか1個の牌を自摸牌として追加したと仮定したきに14個になった手牌が上がりになるか、あるいは聴牌するか否かの判定を行うためのプログラムが必要になる。このような判定を行うためのプログラムの処理手順は複雑になり、その処理時間は長くなる。この理由は、現在の13個または14個の手牌について、雀頭、刻子、順子の組合せが何組完成されるかを判定する必要があるからである。また、この判定を行うプログラムは、遊技者が捨て牌や自摸牌の操作を行う都度、実行させる必要がある。従って、「捨てれば聴牌」する牌、「自摸れば上がり」または「自摸れば聴牌」する牌の有無を判定するためのプログラムの処理時間が長くなると、遊技者に適切なタイミングでアシスト機能を実現することができなくなり、遊技者に違和感を与えることになる。
そこで、本発明の目的は、遊技機、特にアシスト機能を備えた雀球遊技機において、高速な処理が要求されるプログラムモジュールを、CPUに内蔵されているRAMに記憶させて実行させることにより高速な処理を実現し、これにより、遊技者の遊技操作に追従して各種のアシスト機能を実行させることができる遊技機を提供することにある。
本発明は、RAMを内蔵したCPUと、前記CPUの外部に前記CPUにバスを介して接続されたROMを備えた制御基板を有し、遊技盤に設けた遊技盤面部内に、複数種の牌種から構成される麻雀牌の図柄に対応した入球口を設け、遊技球が入球した前記入球口における麻雀牌の図柄の組合せが予め設定された上がり役の組合せを完成させると遊技者に賞としてメダルを払い出す雀球遊技機において、前記ROMには、前記遊技機の動作を制御するための遊技機制御プログラムと、前記制御装置の電源が投入されたときに前記遊技機制御プログラムのうち高速処理が要求されるプログラムモジュールを、前記CPUに内蔵されているRAMに転送して記憶する初期化プログラム手段と、遊技者の現在の手牌が14個のとき、この手牌から不要な何れか1個の牌を捨てる操作を行ったと仮定したときに、13個になった手牌が聴牌の状態になるか否かを判定する捨てれば聴牌判定プログラムとが格納され、前記捨てれば聴牌判定プログラムは、前記14個の手牌についてその牌種ごとの麻雀牌の個数を算出するプログラムと、前記牌種別個数算出手段で算出した前記手牌の牌種ごとの麻雀牌の個数について、その何れか1種の牌種の個数を1個減算して得られた前記牌種ごとの個数を3で除算して得た余りの個数を配列した手牌の配列パターンが、13個の手牌が聴牌しているときのパターンである聴牌時の配列パターンに一致するか否かを判定すると共に、前記手牌の配列パターンが前記聴牌時の配列パターンと一致していると判定された場合には、前記1個減算した牌種を求めるプログラムと、前記14個の手牌から、前記聴牌パターン判定手段により求められた前記牌種を構成する麻雀牌の図柄の何れか1個を順次捨て牌として削除したときに、前記手牌が聴牌しているか否かを判定するプログラムとから構成され、前記遊技機の電源がONされると前記初期化プログラム手段の作動により、前記捨てれば聴牌判定プログラムが前記RAMに転送され、前記遊技制御プログラムにより、前記RAMに転送されたプログラムが実行されることを特徴とする。
さらに、本発明は、RAMを内蔵したCPUと、前記CPUの外部に前記CPUにバスを介して接続されたROMを備えた制御基板を有し、遊技盤に設けた遊技盤面部内に、複数種の牌種から構成される麻雀牌の図柄に対応した入球口を設け、遊技球が入球した前記入球口における麻雀牌の図柄の組合せが予め設定された上がり役の組合せを完成させると遊技者に賞としてメダルを払い出す雀球遊技機において、前記ROMには、前記遊技機の動作を制御するための遊技機制御プログラムと、前記制御装置の電源が投入されたときに前記遊技機制御プログラムのうち高速処理が要求されるプログラムモジュールを、前記CPUに内蔵されているRAMに転送して記憶する初期化プログラム手段と、現在の13個の手牌に1個の麻雀牌の図柄を自摸して追加すれば、前記上がり役を完成させることができるときに、前記遊技者が前記自摸の操作を行う前に、前記自摸れば前記上がり役を完成させることができる麻雀牌の図柄を判定する自摸れば上がり牌判定プログラムとが格納され、前記自摸れば上がり牌判定プログラムは、前記手牌に含まれている牌種ごとの麻雀牌の個数を3で除算して得た余りの個数を配列した手牌の配列パターンが、13個の手牌が聴牌しているときのパターンである聴牌時の配列パターンに一致するか否かを判定する聴牌パターン判定プログラムと、前記聴牌パターン判定プログラムが前記聴牌時の配列パターンと一致していると判定された場合には、前記手牌の配列パターンを、14個の手牌が上がり役を完成したときのパターンである上がり時の配列パターンに一致させるために追加すべき1個の麻雀牌の牌種を判定する上がり牌種判定プログラムと、前記上がり牌種判定プログラムにより判定された牌種について、該牌種を構成する麻雀牌の図柄を順次1個選択して前記13個の手牌に追加したときに、前記手牌が前記予め設定された上がり役を完成させることができるか否かを判定するプログラムとから構成され、前記遊技機の電源がONされると前記初期化プログラム手段の作動により、前記自摸れば上がり牌判定プログラムが前記RAMに転送され、前記遊技制御プログラムにより、前記RAMに転送されたプログラムが実行されることを特徴とする。
本発明において、プログラムモジュールとは次のことを示す。一般に、アセンブラ言語、C言語により開発された制御プログラムは、遊技機等の装置全体の動作を制御するためのメインプログラムと、このメインプログラムが使用する数ステップ〜20ステップ程度の短いプログラムから構成され多数のサブルーチンプログラム(アセンブラ言語)、または関数プログラム(C言語等の高級言語)とから構成される構造化プログラムになっている。そして、アセンブラ言語、あるいはC言語を使用して開発されたソースプログラムは、オブジェクトプログラム(機械語)に翻訳され、この機械語プログラムがROM等に格納されて実行される。
本発明において、プログラムモジュールとは、上記したサブルーチンプログラム、または関数プログラムのことを示し、処理機能ごとに短いプログラムになるように部品化されている。さらに、このプログラムモジュールは、数個のプログラムモジュールがシーケンシャル的に組合されて、複数のプログラムモジュールを組み合わせた構成からなる場合もあり得る。
本発明は、次のような効果を有している。
(1)遊技機、特に、雀球遊技機のようにゲームのルールが複雑な遊技機においては、遊技者の現在の手牌が14個のときに、遊技者が捨て牌の操作を行う前に「捨てれば聴牌」する牌の有無を判定して、「捨てれば聴牌」する牌が判定されたときには、この捨て牌に対応する捨て牌用ボタンスイッチ16a、・・を点灯するアシスト機能、あるいは、現在の手牌が13個のときに、遊技者が次の自摸の操作を行う前に、「自摸れば上がり」、または「自摸れば聴牌」する牌の有無を判定して、「自摸れば上がり」、または「自摸れば聴牌」する牌が判定された場合には、この牌に対応する入球口を明示する等のアシスト機能が要求される。このようなアシスト機能を実行するための「捨てれば聴牌」する牌、「自摸れば上がり」、または「自摸れば聴牌」する牌の有無を判定するためのプログラムロジック、すなわち、現在の手牌の図柄データから、刻子や順子の組合せパターンの判定とその組合せ数の算出は複雑となり、かつ、同じ処理を繰り返して行う場合があるので、そのプログラムの実行時間は時間を要する。この対策として本発明においては、少なくとも、手牌の図柄データから刻子や順子の組合せパターンの判定とその組数を求めるためのプログラムモジュールをCPU内蔵RAM42aに記憶させて実行させることにより、CPUの外部に搭載されているROMで実行させる場合と比較して、実行時のフェッチ時間を少なくするようにしている。これにより、各種のアシスト機能を実行させるためのプログラム処理時間は、CPUの外部に搭載されているROMで実行させる場合と比較して、約1/2に短縮することができる。
(2)本発明を雀球遊技機に適用したときに、遊技者の現在の手牌が「捨てれば聴牌」、あるいは「自摸れば上がり」、「自摸れば聴牌」になる可能性があるか否かの判定は、20数種設定されている上がり役の全ての組合せについて判定せず、現在の手牌に含まれている牌種ごとにその個数を3で除算して得た余りの個数の配列パターンを参照して行っている。さらに、現在の手牌に、数牌の「1」と「9」、および字牌が所定の種類数含まれている場合には、「上がり」または「聴牌」する可能性がないと判断して、この判定を行うプログラムの実行を終了させるようにしている。これらにより、このような判定を行うプログラムをCPUの外部に搭載されているROMで実行しても、そのプログラム処理時間を上がり役の全ての組合せについて判定する方法と比較してその処理時間を1/2〜1/10に短縮することができる。
(3)上記(1)、(2)により、麻雀の知識あるいは雀球遊技機の遊技経験が少ない遊技者に対して、上記したようなアシスト機能を備えた雀球遊技機としても、遊技者のゲームの進行に追従してこのアシスト機能をタイミング良く実行することができる遊技機を提供することができるようになる。
本発明は、マイクロコンピュータにより動作を制御する遊技機、特に雀球遊技機やパチンコ機のように、その動作を制御するオブジェクトプログラムのうち、高速処理が要求されるプログラムモジュールの全て、またはその一部をCPUに内蔵されているRAMに記憶させ、このCPUに内蔵されているRAMに記憶されたオブジェクトプログラムを実行させることにより、そのフェッチ時間を短縮させ、これによりプログラムモジュールの実行速度を高速化させた遊技機である。
本発明を実施するための形態について、雀球遊技機を例にして説明する。以下の実施形態においては、遊技者の現在の手牌について、遊技者が捨て牌あるいは自摸牌の操作を行う前に、「捨てれば聴牌」する牌、「自摸れば上がり」または「自摸れば聴牌」する牌の有無を判定して、遊技者に捨て牌、あるいは自摸すべき牌をLED表示や画面表示によりアシストする機能を高速で実行させる例について説明する。
まず、雀球遊技機の概要について説明する。雀球遊技機は、遊技盤面部内に牌の図柄の種類に対応して複数の入球口が設けられている。そして、遊技者は1個のメダルをメダル投入口に投入するとゲームが開始する。1ゲームのゲーム開始時に必要とする14個の手牌は、乱数発生プログラムを備えた自動配牌プログラムにより決定(配牌)される。
自動配牌プログラムにより配牌された14個の手牌が上がり役を完成していない場合には、遊技者は手牌から不要と判断した1個の牌を、捨て牌用ボタンスイッチを操作して捨て牌の操作を行なう。続いて、遊技者は1個の遊技球を発射して自摸牌の操作(自摸操作)を行う。そして、この発射した遊技球が何れかの入球口に入球すると、この入球口に対応する牌の図柄が自摸(ツモ)した牌になって、手牌にこの自摸牌が追加されて遊技者の手牌は再び14個になる。このようにして、遊技者は捨て牌と自摸牌の操作を繰り返して行なって、遊技者が所定の個数(例えば、14個)の遊技球を発射し終わるまでに、14個の手牌の組合せが予め設定された上がり(和了)役の組合せを完成させると、上がり役ごとに予め設定された所定数のメダルが賞として遊技者に払い出される。さらに、この上がり役が1ゲームごとに予め設定された特定の上がり役である場合には、通常の遊技(通常遊技)と比較して遊技者にとって有利な特別遊技が所定のゲーム数ほど行うことができるようになっている。なお、遊技者が所定の個数の遊技球を発射しても上がり役の組合せを完成させることができない場合には、そのゲームは終了(流局)する。
このような雀球遊技機においては、通常、27種の牌の図柄を各4個、計108個の牌を用いて遊技を行うようになっている。この27種の牌の図柄は、例えば、萬子が「一萬」〜「九萬」の9種、筒子が「一筒」〜「九筒」の9種、索子が「一索」と「九索」の2種、字牌が「東」「南」「西」「北」「白」「發」「中」の7種である。従って、萬子と筒子が数牌となり、索子の「一索」と「九索」は、順子を形成することができないので字牌に含めている。なお、上記した2種の数牌は、例えば、萬子を「一萬」〜「九萬」の9種類の図柄、索子を「一索」〜「九索」の9種類の図柄から構成し、字牌は筒子の「一筒」と「九筒」、および「東」「南」「西」「北」「白」「發」「中」から構成される牌の図柄を有する雀球遊技機にすることも可能である。
図1は、雀球遊技機においてその遊技盤の前面部の構成例を示す図である。図1に示すように、雀球遊技機1の前面部は、基本的には遊技盤面部2、操作パネル3、操作パネル3の下方に設けられた遊技球発射レバー4、メダル受け皿5、音声や効果音(以下、音声という)を出力する音声出力装置であるスピーカー6、ランプ装置7、等から構成されている。
ガイドレール8に囲まれた遊技盤面部2の中央には特別入賞装置(以下、アタッカーという)9、アタッカー9の上方部には遊技球が通過可能なアタッカー作動口10、アタッカー9の左右および下方等には、複数個の入球口11a、11b、11c、・・・が設けられている。これら複数個の入球口11a、11b、・・・等は、二索から八索までの索子牌を除いた牌の図柄27種に対応した27個の入球口が設けられている。例えば、アタッカー9の左右には「白」の入球口11aと「中」の入球口11b、アタッカー9の下方部には、横方向に「一萬」の入球口11c、「二萬」の入球口11d、・・・等が設けられている。さらに、遊技盤面部2には、ランプ付き飾り装置12、風車13、等が設けられている。なお、ランプ装置7、ランプ付き飾り装置12に用いる発光体は、通常の電球あるいはLEDを使用することができる。
操作パネル3には、図2に示すように、液晶表示装置等から構成される表示装置14、メダル投入口15、および各種の操作ボタン(スイッチ)が設けられている。この各種の操作ボタンは、13個のボタンが横方向に配設された捨て牌の入力手段となる捨て牌用ボタンスイッチ16a、16b、・・・、16m、自摸した牌を捨てるための入力手段となる自摸捨て牌用ボタンスイッチ17、リーチボタン18、牌選択右シフトボタン19、牌選択左シフトボタン20、自摸牌決定ボタン21、払い出しボタン22、遊技終了ボタン23、遊技開始ボタン24、REJECTボタン25から構成されている。
なお、遊技者が上記した各ボタンを操作する(押圧してスイッチ接点をオンする)と、例えば、捨て牌用ボタン16aを押圧すると捨て牌信号が発生し、この信号がマイクロコンピュータから構成される制御基板に入力される。そして、制御基板に搭載されているソフトウエア(プログラム)は、入力された信号を解析して入力信号ごとに、ゲームを進行させるために予め設定された処理を実行するようになっている。
表示装置14には、その表示面に種々の表示部が設定され、遊技者に対してゲームの進行に応じて必要な情報や画像および演出用画像をこの表示部に表示するようにしている。例えば、図3に示すように、表示面の上部横方向には、メダル貯留枚数表示部26、残り遊技球数表示部27、風牌表示部28、表ドラ表示部29、裏ドラ表示部30、上がり牌表示部31、特別遊技のうち、ビッグゲームの権利を得ることができる上がり役を示すビッグゲーム上がり役表示部32、さらに、チャンスゲームの権利を得ることができる上がり役を示すチャンスゲーム上がり役表示部33、捨て牌の図柄を表示する捨て牌表示部34が設けられ、ゲームの進行に応じて牌の図柄、演出画像、数値等が表示される。
さらに、表示装置14の表示面の下部横方向には、13個の手牌の図柄を表示する手牌表示部35、自摸した牌の図柄を表示する自摸牌表示部36が設けられている。なお、手牌表示部35および自摸牌表示部36に表示している各図柄の下部には、捨て牌入力手段である捨て牌用ボタンスイッチ16a、16b、・・・、16m、17に対応するボタン名(A、B、C、D、E、・・・、M、N)が表示されている。また、表示される麻雀牌の図柄はカラーで表示される。
図1(または図4)に示す37、・・・はLEDである。LED37は、27個の入球口11a、11b、11c、11d、・・・、またはその近傍を点灯して入球口を明示する機能を備え、各入球口近傍に設けられている。LED37は、例えば、各入球口11a、・・の入り口に突設されている2本の釘間等の入球口近傍をカラー色で明示できるように、遊技盤面部2内に埋め込み、遊技盤面部2の表面部を透明または半透明な樹脂板で覆うようにするとよい。なお、LED37は、フルカラーLEDを用いて入球口近傍を明示するカラー色をプログラム制御により予め設定された色に点灯(発光)させるようにするとよい。
雀球遊技機1の内部の所定位置には、本発明の雀球遊技機1の作動を制御するための制御基板が搭載されている。この制御基板は、例えば、図4に示すように、メイン制御基板Ka、サブ制御基板Kb、画像制御基板Kcから構成されている。メイン制御基板Ka、サブ制御基板Kb、画像制御基板Kcには、それぞれCPU40が搭載されている。そして、CPU40は、信号線であるバス45を介して、ROM41、RAM42、入出力インターフェース(I/F)回路43、通信用インターフェース(I/F)回路44、等が接続されている。バス45は、アドレス・バスとデータ・バスを示す。本発明において、これらROM41およびRAM42は、CPU40の外部に接続されたRAMとROMになる。
メイン制御基板Kaに搭載されている入出力インターフェース回路43には、各入球口11a、・・・等に入球した遊技球を検出するためのセンサー、捨て牌用ボタンスイッチ16a、・・・、等が接続され、その検出信号が入力されるようになっている。さらに、入出力インターフェース回路43は、遊技球を発射装置に送るための遊技球送り装置、アタッカー9の開閉を制御するアタッカー開閉制御装置等に制御信号を出力するようになっている。
サブ制御基板Kbに搭載されている入出力I/F回路43には、ランプ7及び12と、フルカラーLED37、・・・、および59a、・・・が接続されている。なお、フルカラーLED59a、・・・は、捨て牌用ボタンスイッチ16a、・・・、17を発光させるためのLEDである。図4には示していないが、各フルカラーLED37、・・・、および59a、・・・と入出力I/F回路43との間にはフルカラーLEDの発光色を制御するための回路(例えば、ドライバー用IC等)が設けられている。そして、サブ制御基板Kbに搭載されているプログラムにより、発光色を制御する制御信号をこのドライバーに送信すると、フルカラーLEDのR(赤)、B(青)、G(緑)の各カソードへ供給する電流、電圧値のデューティ比等が制御されて、フルカラーLED37、・・・、および59a、・・・から任意のカラー色を発光させることができるようになる。
通信用インターフェース回路44は、メイン制御基板Kaとサブ制御基板Kb、サブ制御基板Kbと画像制御基板Kcとのデータ通信を行うためのインターフェース回路であり、メイン制御基板Kaとサブ制御基板Kb、サブ制御基板Kbと画像制御基板Kcとは、ケーブル線T1、T2により接続されている。
雀球遊技機1の動作を制御、あるいは表示装置14の表示部に情報や画像を表示するための各種のソフトウエア(プログラム)は、各制御基板Ka、Kb、Kcに搭載されたROM41に記憶されている。また、各RAM42は、これらプログラムが作動するときに各種のデータの読み込みやデータの作成、計算等を行うための記憶領域(エリア)、計算領域として使用される。各基板に搭載されているCPU40としては、各メイン制御基板Ka、サブ制御基板Kb、画像制御基板Kcの処理機能に対応して8ビット、16ビットあるいは32ビットのCPUの何れかを採用するようにする。
上記のような構成の雀球遊技機においては、メイン制御基板Kaとサブ制御基板KbのROM41に搭載されているプログラムの中には、高速処理が要求されるプログラムモジュールが含まれている。この高速処理が要求されるプログラムとしては、メイン制御基板Kaにおいては、遊技者が自摸の操作を行ったときに14個になった手牌が上がり役を完成させたか否かを判定する処理、サブ制御基板Kbにおいては、前記のようにアシスト機能を実現するために、現在の遊技者の手牌について、遊技者が捨て牌あるいは自摸牌の操作を行う前に、「捨てれば聴牌」する牌、「自摸れば上がり」または「自摸れば聴牌」する牌の有無を判定するプログラムである。
このような高速処理を要求されるプログラムを制御基板KaとKbに分散させることによりその負荷の集中を防ぎ、かつ、実行時間を短縮させることができる。本発明においては、さらに、これら制御基板KaとKbに搭載されるCPU40は、図5に示すように、内蔵RAM42aを備えているCPUを使用し、高速処理が要求されるプログラムモジュールの全て、あるいはその一部をこの内蔵RAM42aに記憶させ、この高速処理が要求される機械語のプログラムモジュールを内蔵RAM42aからフェッチして実行させることによりプログラム処理の一層の高速化を図るようにしたことに特徴がある。現在、CPUに内蔵されているRAMは、その記憶容量が2Kb〜32Kb程度のものが開発されているが、本発明においては、プログラムの高速処理の要求に応じて適切な記憶容量を備えたRAMを内蔵したCPUを採用するようにする。
続いて、遊技者に「捨てれば聴牌」する牌をアシストするための捨て牌用ボタンスイッチボタン16a、16b、・・・、16m、および自摸牌の捨て牌用ボタンスイッチ17の構成例を図6〜図7に基づいて説明する。
図6に示すように、捨て牌用ボタンスイッチ16a、16b、・・・、16m、および自摸牌の捨て牌用ボタンスイッチ17は、横方向に可撓性透明樹脂からなるカバー部材51a、51b、・・・、51m、51nを配設した外枠52、同じく横方向に透明な樹脂から成形された押圧部材53a、53b、・・・、53m、53nを配設した押圧部材取付け板54、スペーサー55、56、横方向に薄板状あるいはドーム状のばね接点部材を有するスイッチ素子57a、57b、・・・、57m、57nを配設したスイッチ素子取付け板58を組み立てることにより構成されている。なお、スペーサー55および56は、不透明な合成樹脂等で作製し、各スイッチ素子57a、・・・等に対応する位置に適度な大きさの孔部が穿設されている。
遊技者が14個の手牌から不要な1個の牌を捨て牌するときには、捨て牌の図柄に対応する捨て牌用ボタンスイッチ16a、・・・等の該当するスイッチのカバー部材51a、・・・等を押圧する。例えば、図7に示すように、カバー部材51aを押圧すると、スイッチの押圧部材53aが下方に移動し、バネ材から構成されてスイッチ素子57aの可動接点を下方に押し下げて固定接点と接触することにより、スイッチ素子57aから捨て牌信号が発生するようになっている。スイッチ素子取付け板58の各スイッチ素子57a、・・・の近傍には、図6に示すように、LED59a、59b、・・・、59m、59nが設置されている。なお、LED59a、・・・等は、赤、青、緑の何れか1色を発光させるLEDを用いてもよいが、フルカラーLEDを使用することが望ましい。
フルカラーLED59a、・・・の取付けは、その発光部が上向きになるようにスイッチ素子取付け板58に埋め込むように設置する。そして、例えば、フルカラーLED59aを(点灯)発光させると、その発光色は、スペーサー56、55に穿設した孔部を通過し、さらに透明な押圧部材53aを通過して透明なカバー部材51aに達して、このカバー部材51aをフルカラーLED59aの発光色で明示(照明)する。これにより、フルカラーLED59a、・・・が発光すると、遊技者は、カバー部材51aがこのフルカラーLED59a、・・・の発光色で明示されていることを容易に確認することができる。なお、図6に示す例では、フルカラーLED59a、・・・はスイッチ素子取付け板58に設置する例を示しているが、外枠52の各カバー部材51a、・・・の近傍に埋め込んで配設した構成にしてもよい。
なお、サブ制御基板Kbに搭載されているROM41の所定の記憶番地には、表示装置14に表示するための各種の画像データ、スピーカー6から出力するための各種の音声データの全て、またはその一部を記憶させている。この画像データとしては、27種の牌の図柄データ、雀球遊技機1の電源をONした時に初期画面として表示する画像データ、ゲームの進行に伴って遊技者を支援する各種の情報、遊技者が上がり役を完成させたとき等に表示する各種の演出用画像データである。また、各種の音声データとしては、遊技の進行に伴って遊技者に対してゲームの進行を支援するための音声、あるいは演出用の効果音を出力するためのデジタルデータである。そして、雀球遊技機の電源がONされたときに、これらサブ制御基板KbのROM41に搭載されている各種の画像データ等を画像制御基板KcのRAM42に転送するようにする。このようにすることにより、各制御基板Ka、Kb、Kcの大きさを均一化、小型化することが可能になる。
メイン制御基板Kaに搭載されているROM41には、雀球遊技機1の遊技の進行を制御するための各種のプログラムが記憶されている。メイン制御基板KaのROM41に搭載されているプログラムは、図8に示すように、メイン基板動作制御プログラムP1、通信制御プログラムP2、メダル管理プログラムP3、遊技球管理プログラムP4、自動配牌プログラムP5、特別遊技役抽選プログラムP6、表ドラおよび裏ドラを決定するためのドラ抽選プログラムP7、入賞判定プログラムP8、自摸牌選択支援プログラムP9、等から構成される。これらのプログラムP1〜P9のソースプログラムは、アセンブラ言語またはC言語等を用いて開発され、機械語に翻訳されたオブジェクトプログラムがROM41に記憶されている。
メイン基板動作制御プログラムP1は、雀球遊技機1の全体の動作を統括するプログラムであり、主に下記のような処理を行う。
(1)遊技機1の電源がONされたときに作動する初期化プログラムP1aを備え、この初期化プログラムP1aによりRAM42の記憶領域を初期化した後、例えば、電源ON時の初期化制御コマンドをサブ制御基板Kb、サブ制御基板Kbを経由して画像制御基板Kcに送信する処理を行う。この制御コマンドに基づいて、サブ制御基板Kbと画像制御基板Kcは電源ON時の初期化処理を行う。これにより、画像制御基板Kcは、電源ON時の演出用画像や音声等を出力することができる。
(2)各種の入出力センサーやボタンスイッチから入力される信号を解析し、その信号に対応した処理を行うように雀球遊技機1の動作を制御する。例えば、遊技者が遊技球を発射したときに入球した入球口からの入球信号を解析し、この入球口に対応する牌の図柄を自摸牌として手牌データに追加(自摸の操作)する処理を行う。
(3)自動配牌プログラムP5が作動して遊技開始時の14個の手牌が決定されたときに、この手牌データをサブ制御基板Kbに送信するための処理、および上記(1)、(2)の処理において遊技者が捨て牌操作、自摸の操作を行う都度、現在の手牌データ、捨て牌、自摸牌に関する牌の図柄データ(図柄コード)をサブ制御基板Kbに送信するための処理、等を行う。
通信制御プログラムP2は、サブ制御基板Kbとの通信を行うためのプログラムであり、送信するデータは如何なる処理を行うかを予め設定した制御コマンドと、この制御コマンドと共に送信される制御データから構成される。また、画像制御基板Kcにデータを送信する場合には、サブ制御基板Kbを経由してデータが送信されることになる。
メダル管理プログラムP3は、メダル投入口15からメダルの投入信号、遊技終了ボタン23からの信号、払い出しボタン22の信号を検出したときに、メダルの貯留枚数の管理と払い出しの処理を行うためのプログラムである。
遊技球管理プログラムP4は、メイン基板動作制御プログラムP1の制御に基づいて、次の処理を行うプログラムである。
(1)ゲーム開始時に、RAM42に記憶する残り遊技球数を、例えば14個に設定する。
(2)捨て牌ボタンスイッチ16a、・・・等から捨て牌の操作信号を検出すると、遊技球発射位置(図1には図示せず)に遊技球を1球送る制御を行う。
(3)遊技球発射レバー4から発射された遊技球が入球口11a、11b、11c、等の何れかに入球し、その入球信号が検出されると、残り遊技球数を「1」減算し、入球した入球口に対応する牌の図柄コードを作成する。
自動配牌プログラムP5は、1ゲームの開始時に、14個の配牌の図柄をランダムに自動的に決定するためのプログラムである。この自動配牌プログラムP5は、乱数発生手段により発生した乱数を利用して、本雀球遊技機1で使用する27種、計108個の牌から14個の配牌の図柄(図柄コード)を決定する処理を行う。なお、この27種の牌には、図9に示すように、図柄コードが設定され、さらに、各図柄コードには4個の数値が割り付けられている。自動配牌プログラムP5は、発生した乱数と図9に示すデータテーブルを参照して14個の配牌を決定する処理を行う。なお、図9に示すデータテーブルは、予め自動配牌プログラムP5等に登録されている。
特別遊技役抽選プログラムP6は、予め設定されている上がり役の中から1ゲームごとに特別遊技の権利を獲得できる上がり役を抽選により決定するプログラムである。例えば、ビックゲームの権利を獲得できる上がり役は、「大三元」、「国士無双」、「九連宝燈」の3種の上がり役から1種を抽選により決定する。また、チャンスゲームの権利を獲得できる上がり役は、例えば、「一気通貫」、「七対子」、「三暗刻」、「平和」、「一盃口」、「タンヤオ」の6種の上がり役から2種を抽選により決定する。なお、この特別遊技の権利を獲得できる上がり役を抽選により決定する方法は、プログラム処理により所定桁数の乱数を発生させて決定することができる。ドラ抽選プログラムP7は、ゲーム開始時に、同様にして抽選により表ドラおよび裏ドラを決定するためのプログラムである。
入賞判定プログラムP8は、前記した自動配牌プログラムP5により14個の手牌が決定されたとき、および遊技者が自摸の操作を行ったときに、手牌が予め設定された上がり役の組合せになっているかどうかを判定するためのプログラムである。この上がり役としては、図10に示すような構成の上がり役データテーブル、すなわち、上がり役のコードとその上がり役に対して遊技者が獲得できる得点(獲得メダル枚数)が予め入賞判定プログラムP8、またはROM41に記憶されている。そして、現在の14個の手牌について、入賞判定プログラムP8が上がり役を完成していると判定した場合には、上がり役完成の制御コマンドとその上がり役のコード、獲得した得点等を、サブ制御基板Kbを経由して画像制御基板Kcに送信する処理を行う。
自摸牌選択支援プログラムP9は、特別遊技の権利を獲得したゲームにおいて、アタッカー9に遊技球が入球した信号が入力されると、遊技者に対して、表示装置14の画面と対話方式により自摸する牌の図柄を選択する操作を支援するためのプログラムである。
サブ制御基板KbのROM41に搭載されているプログラムは、図11に示すように、サブ基板動作制御プログラムP21、通信制御プログラムP22、ランプ制御プログラムP23、捨てれば聴牌判定プログラムP24、自摸れば上がり牌判定プログラムP25、自摸れば聴牌判定プログラムP26、捨て牌スイッチ点灯制御プログラムP27、入球口点灯制御プログラムP28、上がり役判定プログラムP29等から構成される遊技機制御プログラムを備えている。これらのプログラムP21〜P29のソースプログラムは、アセンブラ言語またはC言語等を用いて開発され、機械語に翻訳されたオブジェクトプログラムがROM41に記憶されている。
サブ基板動作制御プログラムP21は、メイン制御基板Kaから送信された各種の制御コマンドを解読し、各制御コマンドに対応して上記各プログラムの実行を制御するプログラムである。また、サブ基板動作制御プログラムP21は、メイン制御基板Kaから電源ON時の初期化制御コマンドが送信されたときに実行する初期化プログラムP21aを備えている。この初期化プログラムP21aには、ROM41に記憶されている遊技機制御プログラムのうち、後記するように、特に高速処理が要求されるプログラムモジュールをCPU内蔵RAM42aに転送するための内蔵RAM転送プログラムが含まれている。これにより、雀球遊技機1の電源がONされるとこの内蔵RAM転送プログラムが作動して、ROM41に記憶されている遊技機制御プログラムのうち、内蔵RAM転送プログラムにより予め設定されたプログラムモジュールがCPU内蔵RAM42aに転送されることになる。なお、本発明において、ROM41に記憶されている高速処理が要求されるプログラムモジュールをCPU内蔵RAM42aに転送するための内蔵RAM転送プログラムの処理は、初期化プログラム手段を構成する。
通信制御プログラムP22は、メイン制御基板Kaからのデータの受信と画像制御基板Kcとの通信処理を行うプログラムである。画像制御基板Kcは、サブ制御基板Kbから送信された各種の制御コマンドとその制御データ等を受信すると、プログラム処理により表示装置14に演出用の画像や情報を表示し、さらに、スピーカー6から演出用の音声や効果音を出力する。
ランプ制御プログラムP23は、メイン制御基板Kaから送信された制御コマンドとその制御データに基づいて、ランプ7、12の点灯と消灯の制御を行うためのプログラムである。
捨てれば聴牌判定プログラムP24は、遊技者の現在の手牌が14個のとき、この手牌から不要な何れか1個の牌を捨てる操作を行ったと仮定したときに、13個になった手牌が聴牌の状態になるか否かを判定するプログラムである。そして、捨てれば聴牌判定プログラムP24は、遊技者が捨て牌の操作を行う前に、手牌から1個の牌を捨てると、手牌は聴牌するか否かを判定する処理を行う。
自摸れば上がり牌判定プログラムP25は、遊技者の現在の手牌が13個のとき、この手牌に何れか1個の牌を自摸して追加したと仮定したときに、14個になった手牌は予め設定された上がり役を完成させるか否かを判定するプログラムである。そして、自摸れば上がり牌判定プログラムP25は、遊技者が自摸の操作を行う前に、何れか1個の牌を手牌に追加すると、手牌は上がり役を完成させるか否かを判定する処理を行う。
自摸れば聴牌判定プログラムP26は、同じく、現在の手牌が13個のとき、この手牌に1個の牌を自摸すれば、この手牌を聴牌の状態にさせることができるか否かを判定するプログラムである。そして、自摸れば聴牌判定プログラムP26は、遊技者が自摸の操作を行う前に、何れか1個の牌を手牌に追加すると、手牌は聴牌の状態になるか否かを判定する処理を行う。
捨て牌スイッチ点灯制御プログラムP27は、捨てれば聴牌判定プログラムP24が判定した「捨てれば聴牌」する捨て牌の図柄に対応する捨て牌用ボタンスイッチ16a、・・・、および自摸牌の捨て牌用ボタンスイッチ17に設けられているフルカラーLED59a、・・・の点灯を制御するためのプログラムである。
入球口点灯制御プログラムP28は、自摸れば上がり牌判定プログラムP25および自摸れば聴牌判定プログラムP26が判定した「自摸れば上がり」になる牌、または「自摸れば聴牌」になる牌の図柄に対応する入球口の近傍に設置されているフルカラーLED37の点灯を制御するためのプログラムである。
上がり役判定プログラムP29は、現在の13個の手牌について、自摸れば上がり牌判定プログラムP25が、予め設定された上がり役を完成させると判定したときに、この上がり役の役を判断するためのプログラムである。
画像制御基板KcのROM41に搭載されているプログラムは、図12に示すように、画像基板動作制御プログラムP31、画面表示プログラムP32、音声・効果音出力プログラムP41等から構成されている。さらに、画面表示を行うための画面表示プログラムP32は、通常遊技画面表示プログラムP321、特別遊技画面表示プログラムP322、アシスト画面表示プログラムP323から構成されている。これらの画面表示プログラムP32、音声制御プログラムP41は、サブ制御基板Kbから送信された制御コマンドとその制御データに基づいて、画像基板動作制御プログラムP31の制御に従って実行される。以下、これら各プログラムおよびそのサブプログラムの処理内容の概要について説明する。
画面表示プログラムP32は、サブ制御基板Kbから送信されてきた制御コマンドとその制御データに基づいて、表示装置14に画像や数値情報等を表示する処理を行うプログラムである。このうち、通常遊技画面表示プログラムP321は、雀球遊技機1の電源ON時から、遊技者が通常の遊技を行っているときに、表示装置14に各種の演出画像や遊技者に対して支援する各種の画像を表示する処理を行うプログラムである。通常遊技画面表示プログラムP321は、さらに、サブプログラムとして初期演出表示プログラムP321a、ゲーム演出表示プログラムP321bを備えている。
初期演出表示プログラムP321aは、雀球遊技機の電源をONしたときに、初期画面を表示するためのプログラムである。ゲーム演出表示プログラムP321bは、表示装置14に図3に示すような内容の画面を表示するプログラムから構成されている。例えば、遊技の進行に伴って遊技者が捨て牌の操作、通常遊技のゲームの場合は遊技球の発射による自摸牌の操作等を行うごとに、メイン制御基板Kaからサブ制御基板Kbを経由して送信された制御コマンドとその制御データに基づいて、現在の手牌の図柄、捨て牌の図柄、上がり役を完成したときその上がり役と獲得した得点数を表示する処理等、各種の表示手段を備えたプログラムを備えている。
特別遊技画面表示プログラムP322は、遊技者が特別遊技の権利を獲得したときに各種の演出用の画面を表示する処理を行うプログラムである。この特別遊技画面表示プログラムP322は、さらに、遊技者が特別遊技の権利を獲得することができる上がり役を完成した時点に演出表示する権利獲得演出表示プログラムP322a、自摸牌候補選択支援プログラムP322bを備えている。自摸牌候補選択支援プログラムP322bは、遊技者が特別遊技の権利を獲得したときに作動されるプログラムであり、表示装置14に表示された自摸牌の候補の図柄を、牌選択右シフトボタン19、あるいは牌選択左シフトボタン20を操作してスクロールさせながら、対話方式により自摸すべき牌の図柄を選択する操作を支援するためのプログラムである。
捨てれば聴牌表示プログラムP323aは、前記した捨てれば聴牌判定プログラムP24が判定した「捨てれば聴牌」する牌の図柄を表示装置14に表示するためのプログラムである。
自摸れば上がり牌表示プログラムP323bは、前記した自摸れば上がり牌判定プログラムP25が判定した「自摸れば上がり」になる牌の図柄を表示装置14に表示するためのプログラムである。
自摸れば聴牌表示プログラムP323cは、前記した自摸れば聴牌判定プログラムP26が判定した「自摸れば聴牌」する牌の図柄を表示装置14に表示するためのプログラムである。
音声・効果音出力プログラムP41は、サブ制御基板Kbから送信された制御コマンドとその制御データに基づいて、遊技の進行に伴って各種の演出用音声、および効果音をスピーカー6から出力するためのプログラムである。
上記のようなハードおよびソフトウエアを備えた雀球遊技機において、特に、高速処理が要求されるプログラムは、アシスト機能を実現するためのサブ制御基盤Kbに搭載されている捨てれば聴牌判定プログラムP24、自摸れば上がり牌判定プログラムP25、自摸れば聴牌判定プログラムP26である。この理由は、下記(1)と(2)の通りである。
(1)遊技者が自摸の操作、あるいは捨て牌の操作を行う都度、これらのプログラムは作動されるために1ゲーム中において使用頻度が高い。
(2)遊技者の手牌が上がり役を完成するか、あるいは聴牌の状態になるか否かの判定を行うためのプログラム処理は、14個または13個の手牌の図柄コードに基いて、雀頭、刻子および順子の組合せが何組完成しているか否かを判定する必要がある。この判定を行うためのプログラム処理は、14個または13個の手牌の図柄コードから2個または3個を取出して雀頭、刻子および順子の組合せが完成しているか否かの判定を繰り返して行うため、そのプログラムは複雑になりその実行時間は長くなる。
そこで、捨てれば聴牌判定プログラムP24、自摸れば上がり牌判定プログラムP25、自摸れば聴牌判定プログラムP26のプログラムモジュールの全て、あるいはこれらモジュールに共通して使用することができるプログラムモジュールを内蔵RAM42aに記憶(格納)させ、この内蔵RAM42aに記憶させたプログラムモジュールを実行させると、CPUの外部に接続されたROMに記憶されているプログラムモジュールを実行させる場合と比較して、命令語のフェッチ時間を短縮することができるので、高速処理が可能になる。これにより、各種のアシスト機能を備えた雀球遊技機において、このアシスト機能を実現するタイミングの遅れを防止することが可能になり、遊技者に違和感を与えることがなくなる。
続いて、現在の14個の手牌データから何れか1個の牌を不要な牌として捨てたと仮定したときに、13個になった手牌が聴牌するか否か、すなわち、「捨てれば聴牌」となる捨て牌を判定するための捨てれば聴牌判定プログラムP24の処理手順と、内蔵RAM42aに記憶したプログラムモジュールを実行させる方法について説明する。
(捨てれば聴牌の判定処理手順)
メイン基板動作制御プログラムP1は、RAM42の手牌記憶領域に記憶している現在の手牌データ(13個または14個)については、その図柄コードを上昇順にソートしてサブ制御基板Kbに送信する。サブ基板動作制御プログラムP21は、上がり役を完成していないこの14個の手牌の図柄コードを受信すると、受信したデータをRAM42に記憶する。そして、サブ基板動作制御プログラムP21は、制御を捨てれば聴牌判定プログラムP24に移行させる。すると、捨てれば聴牌判定プログラムP24は、順次、サブプログラムである一九字牌種類数算出プログラムP24a、捨てれば七対子聴牌判定プログラムP24b、捨てれば国士無双聴牌判定プログラムP24c、聴牌判定プログラムP24dを作動させる。
以下、捨てれば聴牌判定プログラムP24の処理手順を、図13に示すフローチャートのステップS1〜S10順に説明する。なお、このステップS1〜S10のうち、ステップS8の処理が最も時間を要する。従って、前記のように、雀球遊技機1の電源をONしたときに、初期化プログラムP21aにより、ROM41に記憶されている少なくともステップS8の処理を行うプログラムモジュールの全て、またはその一部を内蔵RAM42aに転送して記憶(格納)し、このプログラムモジュールを内蔵RAM42a上で実行させることにより、ステップS8の処理時間を短縮させるようにする。
(ステップS1)
まず、捨てれば聴牌判定プログラムP24は、一九字牌種類数算出プログラムP24aを作動させる。一九字牌種類数算出プログラムP24aは、RAM42に記憶されている14個の手牌の図柄コードについて、数牌の「1」、「9」、および字牌が何種類含まれているかを算出する。この算出方法は、予め、図9に示すように、雀球遊技機1で使用する27種の牌の図柄ごとに図柄コードを設定しているので、この図柄コードを基にして算出することができる。
ステップS1の処理で、14個の手牌に数牌の「1」と「9」および字牌の牌が9〜11種類含まれていると判定された場合には、現在の14個の手牌は、1個の牌を捨てても聴牌する可能性がないと判定して、捨てれば聴牌判定プログラムP24の処理を終了させる。これにより、現時点で聴牌する可能性がない14個の手牌について以下の処理ステップS2〜S10の処理を実行する必要がなくなるので、捨てれば聴牌判定プログラムP24の処理時間を短縮させることができる。なお、現在の14個の手牌に、数牌の「1」、「9」および字牌が9〜11種類含まれていると、この手牌から1個の牌を捨て牌として捨てても聴牌させることが出来ない理由は下記の通りである。
現在の14個の手牌に9〜11種類の「1」と「9」の数牌、および字牌が含まれている場合、遊技者の次の捨て牌操作によりこの手牌から何れか1個の牌を捨てて13個になった手牌は、下記の理由(1)〜(4)により、聴牌の状態にすることができないからである。この判定は、「七対子」と「国士無双」の上がり役の判定にも適用することができる。
(1)「七対子」と「国士無双」を除いた一般上がり役は、4組の刻子や順子と、1組の雀頭から構成される。従って、一般上がり役は最多で5種類の「1」と「9」の数牌や字牌で構成される。この一例を示すと、「一萬、一萬、一萬」、「九萬、九萬、九萬」、「七筒、八筒、九筒」、「東、東、東」、「一索、一索」の組合せで上がり役を完成させることができるからである。
(2)上がり役が「七対子」の場合、7種類の牌で上がり役が構成されるので、14個の手牌に9種類以上の「1」と「9」の数牌、および字牌が含まれている場合には、現在の手牌から如何なる1個の牌を捨てても聴牌させることができない。
(3)上がり役が「国士無双」の場合、13種類の牌で上がりが構成されるので、現在の14個の手牌に11種類以下の「1」と「9」の数牌、および字牌が含まれている場合には、手牌から1個の牌を捨てても聴牌させることができないと判定することができる。14個の手牌に12種類の「1」と「9」の数牌および字牌が含まれているときには、「1」と「9」の数牌および字牌から構成される雀頭が形成されている可能性があるからである。
(4)従って、現在の14個の手牌に「1」と「9」の数牌、および字牌が9〜11種類含まれている場合には、14個の手牌から不要な1個の牌を捨てても聴牌させることができない。
(ステップS2)
続いて、捨てれば聴牌判定プログラムP24は、捨てれば七対子聴牌判定プログラムP24bを作動させる。捨てれば七対子聴牌判定プログラムP24bは、現在の14個の手牌から1個の不要な牌を捨てると、「七対子」で聴牌するか否かを判定し、「七対子」で聴牌することができる牌が判定された場合には、この捨て牌の図柄コードを「捨てれば聴牌」する牌として、ステップS8aによりRAM42に一時記憶する処理を行う。「七対子」で聴牌することができないと判定した場合にはステップS3に進む。
現在の14個の手牌から不要な1個の牌を捨てると、「七対子」で聴牌状態になるか否かの判定は、例えば、次の処理(1)〜(3)をプログラム化することにより可能になる。
(1)RAM42に記憶されている14個の手牌の図柄コードに基いて、図柄コード別の個数を算出したデータテーブルを作成する。そして、同一の図柄コードが2個ほど揃っている組数をカウントする。
(2)上記(1)の処理により、同一の図柄コードが2個ほど揃っている組数が6組存在すれば、残り2個の牌のうち、何れか1個の牌を捨てると「七対子」で聴牌すると判定することができる。ただし、同一の図柄コードが4個揃っている場合には、「七対子」で聴牌していると判定しないようにする。
(3)上記(2)の処理で「七対子」で聴牌していると判定することができた場合には、14個の手牌から、同一の図柄コードが2個ほど揃っている対子6組の牌を除いた残り2個の牌の図柄コードについて、その何れか1個を捨てれば、この牌の図柄コードを「捨てれば聴牌」する牌と判定することができる。ただし、この残り2個の図柄コードの一方が、対子を構成する6組の牌の中に含まれている場合には、この一方の牌を「捨てれば聴牌」する牌と判定する。
(ステップS3)
続いて、捨てれば聴牌判定プログラムP24は、捨てれば国士無双聴牌判定プログラムP24cを作動させる。捨てれば国士無双聴牌判定プログラムP24cは、現在の14個の手牌から1個の不要な牌を捨てると、「国士無双」で聴牌するか否かを判定し、「国士無双」で聴牌すると判定された場合には、この捨て牌の図柄コードを「捨てれば聴牌」する牌とし、ステップS8bによりRAM42に一時記憶する処理を行う。「国士無双」で聴牌することができないと判定された場合には、ステップS4に進む。
国士無双は、13種類の数牌の「1」「9」と字牌を1個ずつ集め、そのうちの1種で雀頭を形成した上がりである。14個の手牌から不要な1個の牌を捨てると「国士無双」で聴牌しているときには、13種類の数牌の「1」「9」と字牌を1個ずつ集めて残り1個の13面待ちの場合と、雀頭が形成された状態で12種類集まり残り1個のタンキ待ちの場合とがある。従って、手牌から何れか1個の牌を捨て牌すれば「国士無双」で聴牌するか否かの判定は、上記の判定をプログラム化することにより可能になる。
(ステップS4)
以下に説明するステップS4〜S10は、聴牌判定プログラムP24dにより、現在の14個の手牌から1個の牌を捨てる操作を行ったときに、「七対子」「国士無双」を除いた一般上がり役で聴牌させることができるか否かを判定する処理を行う。現在の14個の手牌から何れか1個の牌を捨てたと仮定したときに、この13個になる手牌を聴牌の状態にさせることができるか否かの判定は、下記の技術的思想に基づいて行っている。
すなわち、前記した3種の牌種(2種の数牌と字牌)を使用した雀球遊技機において、14個の手牌が七対子および国士無双を除いた予め設定された一般上がり役の組合せを完成した場合には、この手牌に含まれている牌種ごとの牌の個数(合計個数)を3で除算したときに、この牌種ごとの余りの個数の組合せは、下記に示す配列パターン式(1)で表すことができる。なお、余りの個数とは、牌種ごとの牌の個数を3で除算したときの整数の余り値を示し、その値は0、1、2の何れかの値になる。
(0、0、2) ・・・・・・・・・・・・・・・・・・・ (1)
上記配列パターン式(1)は、14個の手牌が上がり役の組合せを完成した場合には、順子や刻子の組合せが計4組、雀頭(対子)の組合せが1組になることを示している。すなわち、順子と刻子は同一牌種の3個(3の倍数)で構成されるので、順子または刻子の組合せが完成していれば、手牌に含まれている各牌種ごとの牌の個数を3で除算するとその余りは0になる。このとき、牌種に含まれている牌の個数が0の場合には、その個数を3で除算して得た余りの個数は0とする処理を行う。また、雀頭は同一牌種の2個で構成されるので、雀頭を構成する牌種の合計個数を3で除算するとその余りの個数は2になる。従って、14個の手牌が上がり役の組合せを構成すると、各牌種ごとの牌の合計個数を3で除算したとき、牌種ごとの余りの個数の組合せは、上記配列パターン式(1)に示すように、「0」と「0」と「2」の組合せになる。この配列パターン式(1)は、手牌の牌種ごとの牌の合計個数を3で除算したときに、この牌種ごとの余りは、3種の牌種のうち何れか2種の余りが「0」、残りの牌種の余りが「2」になることを示している。すなわち、配列を構成する牌種ごとの余りの数値「0」、「0」、「2」の配列順序は、この牌種の配列順序を考慮しない如何なる順序でもよいことを示す。なお、配列パターン式(1)で示される(0、0、2)は、上がり時の配列パターンを構成する。また、この配列パターン式(1)である(0、0、2)は、前記のように(002)と表現してもよい。
上記した上がり時の配列パターン式(1)から、現在の14個の手牌から不要な1個の牌を捨て牌として捨てて13個になった手牌が、聴牌している可能性があるか否かを判定することができる。すなわち、13個の手牌が聴牌している場合には、各牌種ごとの牌の合計個数を3で除算したとき、牌種ごとの余りの個数の組合せは、下記の配列パターン式(2)、(3)で表すことができる。
(0、0、1) ・・・・・・・・・・・・・・・・・・・ (2)
(0、2、2) ・・・・・・・・・・・・・・・・・・・ (3)
現在の13個の手牌が聴牌しているときに、上記配列パターン式(2)、または配列パターン式(3)が成り立つ理由は、次の通りである。
14個の手牌について上がり時の配列パターンを示す上記配列パターン(0、0、2)から、何れか1種の牌種を削除して13個の手牌にすると、その牌種別の牌の合計個数を3で除算して得た余りの個数の組合せの配列パターンは、(0、0、1)、または(0、2、2)になるからである。このことから、現在の14個の手牌から、どの牌種の麻雀牌を1個捨てれば、上記した聴牌しているときの配列パターン(0、0、1)、または(0、2、2)を構成させることができるか、すなわち、「捨てれば聴牌」する可能性がある捨て牌の牌種を判定することができる。なお、上記の配列パターン式(2)である(0、0、1)、配列パターン式(3)である(0、2、2)は、聴牌時の配列パターンを構成する。
上記のように、現在の手牌について遊技者の次の捨て牌あるいは自摸牌の操作により聴牌、または上がり役を完成させる可能性があるか否かの判定を行うプログラムは、その牌種ごとの個数を3で除算して得た余りの個数の配列パターンが、上がり時の配列パターン式(1)、聴牌時の配列パターン式(2)、(3)に一致しているか否かをチェックする手段を採用すると、20数種設定されている上がり役の全ての組合せについてチェックする従来の方法と比較して、そのプログラムの実行時間を1/2〜1/10に短縮することができる。
ステップS4においては、まず、RAM42に記憶されている14個の手牌の図柄コードについて、牌種ごとの牌の個数を算出する。この算出は次のようにして行うことができる。
(1)数牌である「萬子」の図柄コードは、図9に示すように、16進数表現で「01」〜「09」に設定されている。従って、14個の手牌の図柄コードが、この「01」〜「09」に含まれているか否かを順次判定し、この範囲に含まれている場合にはその個数をRAM42に「1」加算することにより、「萬子」の個数を算出することができる。
(2)同様にして、「筒子」の図柄コードは「0A」〜「12」、「一索」と「九索」を含む字牌の図柄コードは「13」〜「1B」に設定されているので、上記(1)と同様な処理により、「筒子」と「字牌」の個数を算出することができる。上記手順で算出した牌種ごとの牌の個数、すなわち、「萬子」「筒子」「字牌」の各個数はRAM42に記憶しておく。
上記したステップS4の処理を図14に示す14個の手牌例a1で説明すると、牌種ごとの個数a2は、「萬子」の個数Aが5個、「筒子」の個数Bが5個、「字牌」の個数Cが4個として算出され、これらの個数をRAM42に記憶する。
(ステップS5)
聴牌判定プログラムP24dは、下記の配列パターン式(7)、(8)、(9)で示すように、上記ステップS4で算出した牌種ごとの牌の個数、すなわち、「萬子」の個数A、「筒子」の個数B、「字牌」の個数Cの何れか一つを1個減算した個数を3で除算したときの余りの個数の配列パターンを求める。なお、余りの個数とは、前記したように、牌種ごとの牌の個数を3で除算したときの整数の余り値を示し、その値は0、1、2の何れかの値になる。この配列パターン式(7)、(8)、(9)を手牌の配列パターンという。
((A−1)/3の余り、B/3の余り、C/3の余り) ・・・・・ (7)
(A/3の余り、(B−1)/3の余り、C/3の余り) ・・・・・ (8)
(A/3の余り、B/3の余り、(C−1)/3の余り) ・・・・・ (9)
この例を図14に基いて説明すると、a3に示すように、「萬子」の個数を「−1」したときの個数を3で除算して得た余りの個数の配列パターン式(7)は(1、2、1)、同様に「筒子」の個数を「−1」したときの配列パターン式(8)は(2、1、1)、「字牌」の個数を「−1」したときの配列パターン式(8)は(2、2、0)を得ることができる。なお、このステップS5の処理において、牌種の牌の個数が0の場合、その牌種の牌の個数を「3」で除算した余りの個数は「0」にする処理を行う。同様に、牌種の個数が0の場合、その個数を「−1」した個数を「3」で除算して得る余りの個数は「0」にする。
(ステップS6)
聴牌判定プログラムP24dは、ステップS5で求めた手牌の配列パターン式(7)、(8)、(9)が、前記した聴牌時の配列パターン(2)または(3)、すなわち、(0、0、1)または(0、2、2)に一致するか否かを判定する。前記したように、この比較を行うときには、ステップS5で求めた手牌の配列パターン、例えば、図14のa3に示す配列パターン(1、2、1)、(2、1、1)、(2、2、0)は、その配列の要素である「0」「1」「2」の配列順序、すなわち、「萬子」「筒子」「字牌」の順序を考慮する必要がない。従って、上記配列パターン式(9)で求めた配列パターン(2、2、0)が、聴牌時の配列パターンである(0、2、2)に一致すると判定することができる。
ステップS6の処理において、上記した手牌の配列パターン式(7)、(8)、(9)の値が聴牌時の配列パターン式(2)または(3)、すなわち、(0、0、1)または(0、2、2)に一致していない場合には、捨てれば聴牌判定プログラムP24の処理を終了させる。これにより、ステップS7以降の処理を実行する必要がなくなるので、捨てれば聴牌判定プログラムP24の処理時間を短縮させることができる。
(ステップS7)
ステップS6の処理により、手牌の配列パターン式が聴牌時の配列パターン(2)または(3)に一致したときに、ステップS5の処理において牌種の個数を「−1」した牌種を求め、この牌種コードをRAM42に記憶する。図14に示す例では、14個の手牌から字牌の個数を「−1」する、すなわち、字牌を捨て牌とすると、その手牌の配列パターンは、聴牌時の配列パターンである(0、2、2)に一致すると判定することができる。すなわち、図14に示す例では、14個の手牌に含まれている字牌の「東」「南」の何れか1個を捨て牌として捨てると、13個になった手牌は聴牌状態になる可能性があることを示している。なお、聴牌時の配列パターン(2)または(3)は、予め聴牌判定プログラムP24d内に定数「001」、「022」として登録しておく。
(ステップS8)
聴牌判定プログラムP24dは、ステップS7で求めた牌種について、現在の14個の手牌から順次、この牌種の牌を1個捨て牌として捨てたと仮定した場合、残った13個の手牌が聴牌状態になるか否かを判定する処理を行う。図14に示す手牌例a1では、字牌として「東」が3個、「南」が1個含まれているので、図柄コード順に、「東」を1個捨て牌とした場合に聴牌するか、続いて、「南」を1個捨て牌とした場合に聴牌するかを判定し、聴牌すると判定された場合には、この捨て牌とした図柄コードをRAM42に記憶する。図14に示す例では、「南」が「捨てれば聴牌」する牌として判定されることになる。なお、ステップS8において、該当する牌種について最初の図柄コードの牌を捨て牌としたときに聴牌するか否かを判定し、続いてステップS9に進み、捨て牌とすべき該当する牌が存在するときには、ステップS8に戻って次の図柄コードを捨て牌とした場合に聴牌するか否かを判定するようにする。
13個の手牌が聴牌している場合には、この手牌は次のパターンa、またはbの状態になっている。
(パターンa)4組の刻子や順子が完成し、雀頭(対子)は完成していない。
(パターンb)3組の刻子や順子が完成し、雀頭(対子)も完成している。
従って、13個の手牌が聴牌しているか否かを判定するプログラム処理は、13個の手牌に含まれている刻子、順子、雀頭の組合せ数を判定することにより可能になる。
14個の手牌から1個の牌を捨て牌として捨てた後、13個になった手牌が聴牌しているか否かを判定するプログラム処理は、例えば、次のような手順で行うことができる。なお、サブ制御基板KbのRAM42に記憶している13個の手牌データは、図柄コードの上昇順に並べて記憶されている。
(手順1)
13個の手牌の図柄コードについて、図柄コード別に個数を集計した図柄コード別個数テーブルを作成する。
(手順2)
手順1で求めた図柄コード別個数テーブルを参照して、個数が2個以上含まれている図柄コードについて、このうち同一の図柄コードが2個以上揃っている図柄について、その2個の図柄コードは雀頭を形成していると仮定する。続いて、RAM42に記憶している13個の手牌データ(実際のプログラム処理では、他の記憶領域に転送した13個の手牌データを用いる)からこの雀頭を形成していると仮定した図柄コードを削除した後、11個になった図柄コードを上昇順に並べ替える処理を行う。なお、13個の手牌に、個数が2個以上含まれている図柄コードが存在しない場合には、下記の手順4に進む。
(手順3)
手順2で求めた11個の図柄コードについて、刻子が形成されているか否かを判定し、刻子が形成されている場合にはその刻子の組合せ数を求める。そして、刻子が形成されている場合には、RAM42に記憶している手牌データからこの刻子の図柄コードを削除した後、残った図柄コードを上昇順に並べ替える処理を行う。刻子が形成されているか否かの判定は、図柄コード別個数テーブルを参照して、個数が3個揃っている図柄コードは刻子が形成されていると判定し、個数が4個揃っている図柄コードについてはそのうち3個について刻子が形成されていると判定する。
(手順4)
RAM42に記憶している手牌データについて、順子が形成されているか否かの判定と、順子が形成されている場合にはその組合せ数を求める処理を行う。順子が形成されているか否かの判定は、次の手順4a、手順4bの何れかを採用することにより可能である。
(手順4a)RAM42に記憶している手牌データの先頭番地から順次、数牌の図柄コードについて、連続した3個の図柄コードが揃っているか否かをチェックする。そして、連続した3個の図柄コードが揃っていた場合には、順子の組合せ数を+1し、続いて、RAM42に記憶している手牌データからこの順子を形成する図柄コードを削除した後、この手牌の図柄コードを上昇順に並べ替える処理を行う。続いて、同様の手順により、数牌の図柄コードについて、連続した3個の図柄コードが揃っているか否かをチェックする。
(手順4b)RAM42に記憶している手牌データについて、図15に示す対子・刻子・順子ユニットテーブルを参照して、手牌のうち数牌の図柄コードについて、順子のユニットが形成されているか否かを順次判定する。そして、順子のユニットが形成されている場合には、順子の組合せ数を+1し、続いて、RAM42に記憶している手牌データからこの順子を形成する図柄コードを削除した後、この手牌の図柄コードを上昇順に並べ替える処理を行う。続いて、同様の手順により、数牌の図柄コードについて、順子のユニットが形成されているか否かをチェックする。なお、図15に示す対子・刻子・順子ユニットテーブルは、27種の牌種について、対子、刻子、順子が形成される図柄コードのパターンを予めROM41に登録したデータテーブルである。
(手順5)
上記した手順1〜手順4の処理により、刻子、順子、雀頭(対子)の組合せ数を判定する。そして、この組合せ数が下記(a)または(b)の場合には、13個の手牌は聴牌していると判定することができる。
(a)刻子や順子の組合せ数が計4組になった場合には、13個の手牌は残り1個の牌が雀頭のタンキ待ちの聴牌になると判定することができる。
(b)刻子や順子の組合せ数が計3組になり、かつ、雀頭が1組形成されている場合には、残った2個の手牌が対子を形成しているか、あるいは残った2個の牌が数牌であり、塔子(ターツ)、嵌塔(カンター)、辺塔(ペンター)の何れかを形成している場合には、聴牌状態になっていると判定することができる。
なお、ステップS8の処理において、聴牌の状態になると判定しても、この聴牌している手牌に自摸操作により1個追加して「自摸れば上がり」になる牌が既に4個開示されている場合には、聴牌の状態にならないと判定してもよい。
(手順6)
上記手順2の処理において、13個の手牌に、さらに同一の図柄コードが個数2個以上含まれている場合には、この2個の図柄コードについても雀頭(対子)が形成されていると仮定して、上記手順2〜手順5の処理を行う。
上記した手順1〜手順6の処理は、処理手順のロジックが複雑である上、繰り返しの処理を行う場合もあり得るので、そのプログラム処理時間が長くなる可能性がある。従って、本発明においては、上記手順1〜手順6の処理を実行するプログラムモジュールの全て、あるいはその一部のモジュールを内蔵RAM42aに記憶させる。そして、ROM41に記憶されている遊技機制御プログラムを実行しているときに、上記手順1〜手順6の処理を実行するときには、ROM41に記憶されている遊技機制御プログラムから内蔵RAM42aに記憶されているプログラムモジュールを呼び出して実行させるようにする。
サブ制御基板KbのROM41に記憶されている遊技機制御プログラムを実行しているときに、内蔵RAM42aに記憶されているプログラムモジュールを呼び出す方法は、次のようにして行うことができる。
例えば、アセンブラ言語を用いてソースプログラムを開発する場合には、次のようにして行うことができる。図16に示すように、サブ制御基板Kbに搭載されているRAMとROMのアドレス空間(CPU40を8ビットと仮定)において、ROM41に記憶されている遊技機制御プログラムの中に、内蔵RAM42aに記憶されているプログラムモジュール「PM1」を呼び出すためのジャンプサブルーチンの命令語(JSR AA2)を記述しておく。そして、内蔵RAM42aに記憶するプログラムモジュール「PM1」がROM41の「AA1」番地以降に配置されるようにソースプログラムを開発する。そして、雀球遊技機1の電源がONされたときの初期化プログラムP21aにより、ROM41の記憶番地AA1番地以降に記憶されているプログラムモジュール「PM1」のオブジェクトプログラムを内蔵RAM42aの記憶番地AA2番地以降に転送して記憶することにより可能になる。さらに、内蔵RAM42aの記憶容量に余裕がある場合には、高速処理が要求される他のプログラムモジュールPM2、・・PMiを内蔵RAM42aに記憶させると、ROM41に記憶されている遊技機制御プログラムがこのプログラムモジュールPM2、・・PMiを呼び出して実行させることも可能になる。
初期化プログラムP21aにより、内蔵RAM42aにいかなるプログラムモジュールを転送するかは、ソースプログラムをオブジェクトプログラムに翻訳した後に行う実機テストで得られる高速化の結果から決定するようにする。
(ステップS9)
聴牌判定プログラムP24dは、ステップS7の処理により求めた牌種であって、手牌に含まれている全ての図柄コードについて、ステップS8の処理を行ったかどうかをチェックし、未だ処理を行っていない図柄コードが残っている場合には、ステップS8に戻るようにする。一方、全ての図柄コードについてステップS8の処理が終了した場合には、ステップS10に進む。
(ステップS10)
上記ステップS8、S8a、S8bの処理により、RAM42に記憶した「捨てれば聴牌」する牌の図柄コードについて、聴牌判定プログラムP24dは、遊技者に対し下記のアシスト機能を提供する処理を行う。
(1)捨て牌スイッチ点灯制御プログラムP27を作動させて、「捨てれば聴牌」する捨て牌の図柄コードに対応する捨て牌用ボタンスイッチ16a、16b、・・・、16m、17に設けられているフルカラーLED59a、59b、・・・、59nを点灯させる制御を行う。
(2)RAM42に記憶している「捨てれば聴牌」する牌の図柄コードの全てを画像制御基板Kcに制御コマンドと共に送信する。画像制御基板Kcはこの「捨てれば聴牌」する図柄コードを受信すると、捨てれば聴牌表示プログラムP323aによりこの「捨てれば聴牌」する図柄コードに対応する図柄を図20に示すように表示装置14に表示し、さらに、音声・効果音出力プログラムP41により「捨てれば聴牌」する牌がある旨の音声をスピーカー6から出力するようにする。
遊技者はこのようなアシスト機能により、捨て牌用ボタンスイッチ16a、・・、17のLED59a、・・の点灯、表示装置14の表示を見て、現在の14個の手牌に「捨てれば聴牌」する牌があることを、捨て牌の操作を行う前に把握することができる。これにより、麻雀遊技の知識に乏しい遊技者も「捨てれば聴牌」する牌を的確に選択することができるので、より早く、手牌を聴牌の状態に導くことが可能になる。このステップS10の処理を行うと、捨てれば聴牌判定プログラムP24の処理は終了することになる。
なお、点灯された捨て牌用ボタンスイッチ16a、・・、17のLED59a、・・を消灯するタイミングは、遊技者が捨て牌用ボタンスイッチ16a、・・、17の何れかを押圧して捨て牌の操作を行い、メイン制御基板Kaからこの捨て牌の図柄コードが制御コマンドと共にサブ制御基板Kbに送信されたときにサブ基板動作制御プログラムP21の制御に基づいて消灯するようにする。
続いて、遊技者の現在の手牌が13個のときに、この手牌に何れか1個の牌を自摸牌として追加したと仮定したときに、この手牌が「上がり」、または「聴牌」するか否か、すなわち、「自摸れば上がり」、または「自摸れば聴牌」する牌の判定方法と遊技者へのアシスト方法について説明する。
前記したように、メイン制御基板Kaのメイン基板動作制御プログラムP1は、ゲーム開始時に14個の牌が自動配牌されたとき、および遊技者が遊技球を発射して自摸の操作を行って手牌が14個になったとき、入賞判定プログラムP8を作動させて上がり役を完成させたか否かの判定を行う。そして、上がり役を完成していない場合には、遊技者が14個の手牌の中から不要な1個の牌を捨てる「捨て牌」の操作を行う都度、手牌記憶領域に記憶している13個になった手牌の図柄コードを制御コマンドと共にサブ制御基板Kbに送信する。このとき、13個の図柄コードは上昇順にソートされてサブ制御基板Kbに送信される。サブ制御基板Kbのサブ基板動作制御プログラムP21は、この13個の手牌の図柄コードを受信すると、この受信したデータをRAM42に記憶した後、制御を自摸れば上がり牌判定プログラムP25に移行させる。そして、自摸れば上がり牌判定プログラムP25が、現在の13個の手牌に何れか1個の牌を追加しても上がり役を完成させることができないと判定したときには、自摸れば聴牌判定プログラムP26を作動させる。
自摸れば上がり牌判定プログラムP25と自摸れば聴牌判定プログラムP26の処理の概要は下記のようになる。
(1)自摸れば上がり牌判定プログラムP25は、現在の13個の手牌に、1個の自摸すべき牌を追加したと仮定した場合に、14個になった手牌は上がり役を完成するか否かを判定する。そして、上がり役を完成すると判定された場合には、この「自摸れば上がり」になる牌の入球口近傍に設定されているフルカラーLED37を点灯させるように制御する。さらに、表示装置14に、この「自摸れば上がり」になる牌の図柄を表示させるように制御する。
(2)上記(1)の処理の結果、「自摸れば上がり」になる牌が判定されなかった場合には、自摸れば聴牌判定プログラムP26が作動する。自摸れば聴牌判定プログラムP26は、同様に、現在の13個の手牌に、1個の自摸すべき牌を追加したと仮定した場合に、14個になった手牌は聴牌の状態になるか否かを判定する。そして、14個になった手牌が聴牌の状態になると判定された場合には、この「自摸れば聴牌」する牌の入球口近傍に設定されているフルカラーLED37を点灯させるように制御する。さらに、表示装置14に、この「自摸れば聴牌」する牌の図柄を表示させるように制御する。
(自摸れば上がりになる牌の判定処理)
続いて、自摸れば上がり牌判定プログラムP25の処理手順と、このプログラムを高速処理するために内蔵RAM42aに記憶したプログラムモジュールを実行させる手順について説明する。自摸れば上がり牌判定プログラムP25は、図11に示すように、七対子上がり牌判定プログラムP25a、国士無双上がり牌判定プログラムP25b、聴牌パターン判定プログラムP25c、上がり牌種判定プログラムP25d、上がり牌判定プログラムP25e、および一九字牌種類数算出プログラムP24aから構成されている。以下、図17に示す処理ステップS11〜S22の順に、その処理の概要を説明する。
(ステップS11)
まず、一九字牌種類数算出プログラムP24aは、サブ制御基板KbのRAM42に記憶している13個の手牌の図柄コードについて、数牌(萬子と筒子)の「1」と「9」の牌である「一萬」「一筒」「九萬」「九筒」、および字牌が含まれている種類数Aを算出する。そして、13個の手牌に数牌の「1」、「9」および字牌の種類数Aが8〜11種類含まれていると判定された場合には、現在の13個の手牌は、上がる可能性がないとして自摸れば上がり牌判定プログラムP25の処理を終了させるようにする。これにより、現時点の手牌について、次の自摸操作により上がる可能性がない13個の手牌について、自摸れば上がり牌判定プログラムP25の実行を行う必要がないので、その処理時間を短縮させることができる。なお、現在の13個の手牌に数牌の「1」、「9」および字牌の種類数Aが8〜11種類含まれている場合に、この手牌に1個の自摸牌を追加しても上がることができない理由は、前記したステップS1の処理で説明した理由とほぼ同様であるのでその詳細は省略する。
(ステップS12)
ステップS12では、七対子上がり牌判定プログラムP25aにより、現在の13個の手牌に1個の牌を自摸して追加すると、「七対子」で上がることができるか否かを判定し、「七対子」で上がることができる牌が判定された場合には、この自摸すべき牌の図柄コードを「自摸れば上がり」になる牌としてステップS20aによりRAM42に一時記憶する処理を行う。「七対子」で上がることができないと判定した場合にはステップS13に進む。なお、現在の13個の手牌に1個の牌を自摸して追加すれば「七対子」で上がることができる牌の判定方法は、前記ステップS2で説明した手順と同じ考え方で可能であるのでその詳細は省略する。
(ステップS13)
国士無双上がり牌判定プログラムP25bにより、現在の13個の手牌に1個の牌を自摸して追加すると、「国士無双」で上がることができるか否かを判定し、「国士無双」で上がることができる牌が判定された場合には、この自摸すべき牌の図柄コードを「自摸れば上がり」になる牌としてステップS20bによりRAM42に一時記憶する処理を行う。「国士無双」で上がることができないと判定された場合には、ステップS14に進む。なお、現在の13個の手牌に1個の牌を自摸して追加すれば「国士無双」で上がることができる牌の判定方法は、前記ステップS3で説明した手順と同じ考え方で可能であるのでその詳細は省略する。
なお、上記ステップS12、S13の処理において、「自摸れば上がり」となる牌として判定した牌が現時点のゲームの場で既に4個開示されている場合には、「自摸れば上がり」となる牌として判定しない処理を行う必要がる。この4個開示されているか否かの判定方法は、後記のステップS18において説明する。
(ステップS14)
以下に説明するステップS14〜S22の処理は、「七対子」「国士無双」を除いた一般上がり役に対する処理になる。ステップS14においては、聴牌パターン判定プログラムP25cにより、RAM42に記憶している13個の手牌の図柄コードについて、牌種ごとの牌の個数を算出して、RAM42の牌種ごとの個数算出領域に記憶する処理を行う。この牌種ごとに牌の個数の算出は、前記ステップS4の手順と同じである。
上記したステップS14の処理を図18に示す13個の手牌例a11で説明すると、牌種ごとの牌の個数a12は「萬子」が5、「筒子」が5、「字牌」が3として算出され、これらの個数をRAM42に記憶する。
続いて、聴牌パターン判定プログラムP25cは、上記の処理で算出した牌種ごとの牌の個数を「3」で除算し、その余りの個数X(萬子の余り個数)、Y(筒子の余り個数)、Z(字牌の余り個数)を求める。この余りの個数は、前記のように、牌種ごとの牌の個数を3で除算したときの整数の余り値を示し、その値は0、1、2の何れかの値になる。続いて、この余りの個数を配列した配列パターン(X、Y、Z)を求めてRAM42に記憶する。なお、配列パターン(X、Y、Z)は、手牌の配列パターンを構成する。この算出例を図18に基づいて説明すると、a12に示す牌種ごとの牌の個数を「3」で除算して得た余りの個数はa13に示すように「萬子」は2、「筒子」は2、「字牌」は0の結果が得られる。すなわち、手牌の配列パターン(X、Y、Z)は、(2、2、0)になる。RAM42にこの手牌の配列パターン(2、2、0)を記憶するときは、「220」または「022」として記憶する。なお、この処理において、牌種の牌の個数が0の場合には、その牌種の牌の個数を「3」で除算して得た余りの個数は「0」にする処理を行う。
(ステップS15)
聴牌パターン判定プログラムP25cは、ステップS14で求めた手牌の配列パターン(X、Y、Z)が前記した聴牌時の配列パターン式(2)または式(3)、すなわち、(0、0、1)または(0、2、2)に一致するか否かを判定する処理を行う。前記したように、この一致するか否かの判定を行うときには、ステップS14で求め、図18のa13に示す手牌の配列パターン(2、2、0)はその要素である「2」「2」「0」の配列順序は、「萬子」「筒子」「字牌」の順序を考慮する必要がない。従って、図18のa13に示す手牌の配列パターン(2、2、0)は、聴牌時の配列パターン式(3)、すなわち(0、2、2)に一致していると判定することができる。
ステップS15において、ステップS14で求めた手牌の配列パターンが前記した聴牌時の配列パターン式(2)または式(3)と一致している場合には、前記したように、13個の手牌は、聴牌の状態になっていると判定することができるので、次の処理ステップS16に進む。一方、上記の処理で聴牌時の配列パターン式に一致していないと判定された場合には、自摸れば上がり牌判定プログラムP25の処理を終了させる。なお、聴牌時の配列パターン式(2)または式(3)は、予め聴牌パターン判定プログラムP28c内に、定数である「001」、「022」として登録しておくようにする。
ステップS15の処理により、現在の13個の手牌は聴牌していない、すなわち、自摸操作により如何なる1個の牌を追加しても上がる可能性がないと判定された場合には、ステップS16以降の処理を行わないようにしている。これにより、現在の手牌について「自摸れば上がり」になる牌が判定されない場合には、自摸れば上がり牌判定プログラムP25の処理を終了させるので、そのプログラム処理時間を短縮させることができる。
(ステップS16)
ステップS16では、まず、上がり牌種判定プログラムP25dにより、ステップS14で求めた手牌の配列パターンを、前記した上がり時の配列パターン式(1)、すなわち、(0、0、2)にするために、現在の手牌に追加すべき1個の牌種を求める処理を行う。 この処理の概要を図18のa13に示す手牌の配列パターン(2、2、0)で説明すると次のようになる。a13に示す手牌の配列パターン(2、2、0)は、現在の13個の手牌について、「萬子」の個数を3で除算したときの余りの個数が2、同じく「筒子」の余りの個数が2、同じく「字牌」の余りの個数が0であることを示している。従って、図18のa13に示す配列パターン(2、2、0)に1個の牌種を追加して上がり時の配列パターン式(0、0、2)にするためには、「萬子」または「筒子」の牌種の1個を手牌に追加すれば、「3」で除算した余りの個数は「0」になるので、上がり時の配列パターン(0、0、2)になることが分かる。このような処理をプログラム化した上がり牌種判定プログラムP25dは、図18のa13に示す手牌の配列パターン(2、2、0)では、「萬子」または「筒子」に上がり役を構成することができる牌種、すなわち、「自摸れば上がり」になる牌種は「萬子」または「筒子」であると判定することができる。なお、上がり時の配列パターン式(1)は、予め、上がり牌種判定プログラム25dに定数「002」として登録しておく。
(ステップS17)
上がり牌判定プログラムP25eは、ステップS16で求めた牌種についてこの牌種を構成する牌の中からまず1個の牌を選択する。例えば、牌種が「萬子」である場合には、図柄コードの上昇順である「一萬」の図柄コードから選択する処理を行う。この選択処理は、現在の13個の手牌に1個の牌を自摸牌として追加したときに、上がり役を完成させることができるか否かを判定するために行う。
(ステップS18)
ステップS17の処理で選択した牌は、この時点の遊技の場において既に4個開示されている牌であるか否かをチェックする必要がる。この理由は、既に4個開示されている牌は自摸する牌として選択できないからである。現時点の遊技の場において、4個開示されている牌か否かのチェック方法は、例えば、次のような(処理1)〜(処理3)を行うプログラムを備えることにより可能になる。なお、既に4個開示されている牌の図柄とは、現在の手牌、現在までの捨て牌、表ドラとして表示されている牌、裏ドラ、風牌について、同一の牌の図柄が既に4個開示されている牌の図柄を示すが、このうち、例えば、表ドラ、裏ドラ、風牌については、4個開示されている牌の図柄としてカウントしない処理を行う等、適宜に設定するとよい。
(処理1)サブ制御基板Kbのサブ基板動作制御プログラムP21は、RAM42に図19に示すような牌の図柄コード別の開示個数をカウントする開示個数テーブルKを設定する。
(処理2)サブ制御基板Kbのサブ基板動作制御プログラムP21は、メイン制御基板Kaから自動配牌プログラムP5が自動配牌した14個の牌の図柄コードが送信されたとき、遊技者が遊技球を発射して自摸操作を行ってメイン制御基板Kaからこの自摸牌の図柄コードが送信されたとき、およびメイン制御基板Kaから表ドラ牌等の図柄コードを受信したときに、開示個数テーブルKの該当する図柄コードの開示個数をカウントする記憶領域を「+1」する処理を行う。
(処理3)上がり牌判定プログラムP25eは、上記したステップS17の処理で選択した図柄コードについて、この開示個数テーブルKを参照して、この選択した牌の図柄コードが既に4個開示されているか否かを判定する。そして、既に4個開示されている図柄コードについては自摸する牌として選択しない処理、すなわち、上がり役を構成するか否かの判定を行うステップS19〜S20の処理を行わないようにし、開示個数が0〜3個の牌の図柄コードを自摸する牌として選択する処理を行うようにする。
(ステップS19)
上がり牌判定プログラムP25eは、ステップS17で選択し、現在のゲームの場において4個開示されていない牌の図柄コードをRAM42に記憶している現在の13個の手牌データに追加する。続いて、14個になった手牌の図柄コードを上昇順に並べ直す処理を行う。続いて、この14個の手牌が「七対子」と「国士無双」を除いた一般上がり役の組合せを完成しているか否かを判定する処理を行う。この判定は、一般上がり役は、「刻子」や「順子」の組合せが4組、「雀頭」の組合せが1組で構成されるので、これらの組合せの判定とその組合せ数を算出する処理をプログラム化することにより可能になる。この判定手順は、前記ステップS8の処理で説明した手順1〜手順6を用いて判定することができる。
すなわち、ステップS16の処理で、上がり役を完成させるための牌種は、「萬子」または「筒子」と判定されたので、まず、「萬子」の「一萬」〜「九萬」までの図柄コードを、順次、現在の13個の手牌に1個追加したときに、上がり役を完成することができるか否かを判定する。この上がり役を完成したかどうかの判定は、14個の手牌に「雀頭」の組合せが1組と、「刻子」や「順子」の組合せが計4組ほど完成していれば上がり役を完成していると判定することができる。前記ステップS8の処理で説明した手順1〜手順6とこのステップS19との相違は、現在の手牌数が13個または14個であるかの相違のみである。従って、この手順1〜手順6のプログラムモジュールを実行する前に現在の手牌数をパラメータ(引数)として渡す処理を行えば、ステップS8の処理で説明した手順1〜手順6を実行するためのプログラムモジュールは、ステップS19の処理においても使用することができる。前記した通り、この手順1〜手順6のプログラムモジュールは内蔵RAM42aに記憶されている。従って、ステップS19を実行するプログラムに内蔵RAM42aに記憶されている前記手順1〜手順6のプログラムモジュールを呼び出すプログラム(JSR AA2)を記述しておくことにより、ステップS19の処理を高速化することができるようになる。
(ステップS20)
ステップS19の処理により、上がり役を完成することができる牌が判定された場合には、この自摸牌として追加したと仮定した図柄コードを「自摸れば上がり」になる牌としてその図柄コードをRAM42に記憶する。図18に示す例では、「五萬」「三筒」と「六筒」の3個が「自摸れば上がり」になる牌の図柄になるので、これらの図柄コードが上がり牌としてRAM42の記憶領域a14に記憶されることになる。
(ステップS21)
続いて、上がり牌判定プログラムP25eは、13個の手牌に追加すべき全ての牌の図柄コードについて「自摸れば上がり」になる牌の判定処理を行ったか否かをチェックし、チェックしていない牌がある場合には、ステップS17に戻る処理を行う。
(ステップS22)
上がり牌判定プログラムP25eは、ステップS20、S20a、S20bの処理でRAM42に「自摸れば上がり」になる牌の図柄コードが記憶されているか否かをチェックし、記憶されている場合には、入球口点灯制御プログラムP28を作動させて、この「自摸れば上がり」になる牌に対応する入球口11a、・・の近傍に設置したフルカラーLED37、・・を点灯させるように制御する。さらに、上がり牌判定プログラムP25eは、RAM42に記憶している「自摸れば上がり」になる牌の図柄コードの全てを画像制御基板Kcに制御コマンドと共に送信する。画像制御基板Kcはこの「自摸れば上がり」になる牌の図柄コードを受信すると、自摸れば上がり牌表示プログラムP323bによりこの「自摸れば上がり」になる牌の図柄コードに対応する図柄を図21に示すように表示装置14に表示し、さらに、音声・効果音出力プログラムP41により「自摸れば上がり」となる牌がある旨の音声をスピーカー6から出力するようにする。
ステップS22の処理が終ると、自摸れば上がり牌判定プログラムP25の処理は終了することになる。
前記したように自摸れば上がり牌判定プログラムP25は、現在の13個の手牌について、「自摸れば上がり」となる牌が抽出されたときに、「自摸れば上がり」になる牌に対応する入球口近傍に設置されているフルカラーLED37、・・を点灯させる処理等を行って処理を終了する。一方、「自摸れば上がり」となる牌が抽出されなかったときには、自摸れば上がり牌判定プログラムP25は、自摸れば聴牌判定プログラムP26を実行させる。自摸れば聴牌判定プログラムP26は、同様に、RAM42に記憶した現在の13個の手牌に関する図柄コードに基いて、この手牌に何れか1個の牌を追加したと仮定したときに、この14個の手牌を聴牌させることができるか否かを判定する。そして、「自摸れば聴牌」する牌が判定された場合には、この牌に対応する入球口近傍に設置されているフルカラーLED37、・・を点灯させ、さらに、「自摸れば聴牌」する牌の図柄を図22に示すように表示させる制御を行う。
(自摸れば聴牌する牌の判定処理)
自摸れば聴牌判定プログラムP26の処理手順の概要は、図23に示すようにステップS31〜ステップS40で表すことができる。以下、各ステップの処理の概要について説明する。
(ステップS31)
まず、自摸れば聴牌判定プログラムP26は、前記したステップS1の処理を実行した一九字牌種類数算出プログラムP27aを作動させる。そして、13個の手牌に数牌の「1」、「9」および字牌が9〜10種類含まれていると判定された場合には、現在の13個の手牌は、遊技者が次の自摸操作を行っても聴牌の状態になる可能性がないと判定して、自摸れば聴牌判定プログラムP26の処理を終了させる。これにより、現在の13個について、1個の牌を追加して14個になった手牌が聴牌する可能性がない場合には、以下に説明するステップS32〜S40の処理を実行する必要がなくなるので、自摸れば聴牌判定プログラムP26の処理時間を短縮させることができる。なお、現在の13個の手牌に、数牌の「1」、「9」および字牌が9〜10種類含まれている場合には、この手牌に1個の自摸牌を追加しても聴牌する可能性がないと判定する理由は、前記ステップS1で説明した理由と同じ考え方で証明できるのでその詳細は省略する。このステップS31の処理により、数牌の「1」と「9」および字牌の種類数Aが8以下、および11以上の場合には、ステップS32に進む。
(ステップS32)
自摸れば聴牌判定プログラムP26は七対子聴牌判定プログラムP26aを作動させて、現在の13個の手牌に1個の牌を自摸して追加した場合に、「七対子」で聴牌するか否かを判定する。そして、「七対子」の上がり役で聴牌すると判定された場合には、この自摸すべき牌の図柄コードを「自摸れば聴牌」する牌としてステップS37aによりRAM42に一時記憶する処理を行う。「七対子」で聴牌することができないと判定した場合にはステップS33に進む。ステップS32において、現在の手牌に1個の牌を自摸すれば「七対子」の上がり役で聴牌させることができる牌の判定方法は、前記ステップS2において捨てれば七対子聴牌判定プログラムP24bの処理で説明した手順と同じ考え方で可能であるのでその詳細は省略する。
(ステップS33)
自摸れば聴牌判定プログラムP26は、国士無双聴牌判定プログラムP26bを作動させて、現在の13個の手牌に1個の牌を自摸した場合に、「国士無双」で聴牌するか否かを判定する。そして、「国士無双」で聴牌すると判定された場合には、この自摸すべき牌の図柄コードを「自摸れば聴牌」する牌としてステップS37bによりRAM42に一時記憶する処理を行う。「国士無双」で聴牌することができないと判定された場合には、ステップS34に進む。なお、現在の13個の手牌に1個の牌を自摸すれば「国士無双」で聴牌するか否かの判定方法は、前記ステップS3で説明した手順と同じ考え方で可能であるのでその詳細は省略する。
なお、上記ステップS32、S33の処理において、「自摸れば聴牌」する牌として判定した牌が現時点のゲームの場で既に4個開示されている場合には、「自摸れば聴牌」する牌として判定しない処理を行う必要がある。この判定方法は、前記したように図19に示す開示個数テーブルKを参照して判定するようにする。
(ステップS34)
以下に説明するステップS34〜S40の処理は、自摸れば聴牌判定プログラムP26が全図柄別聴牌判定プログラムP26cを作動させることにより行なわれる。ステップS34においては、現在の13個の手牌に対して、自摸して1個の牌を追加したと仮定したときに、手牌が聴牌の状態になるか否かを事前に判定するために、この自摸する1個の牌(Xi)を選択する処理を行う。この1個の牌の選択処理は、「一萬」〜「中」までの27種の牌の図柄コードを1個ずつ選択する処理を行う。
(ステップS35)
ステップS34で選択した牌(Xi)は、現時点のゲームの場において既に4個開示されている牌の図柄は自摸する牌として選択しないようにする必要がある。この対策として、前記したステップS18と同一の処理、すなわち、図19に示す開示個数テーブルKを参照して、選択した牌(Xi)が既に4個開示されているか否かをチェックする処理を行う。そして、開示個数が0〜3個の牌の図柄コードを自摸する牌として選択する処理を行って、ステップS36に進む。一方、既に4個開示されている図柄コードについては自摸する牌として選択しないでステップS38に進む。
(ステップS36)
RAM42に記憶している13個の手牌の図柄コードに、ステップS34〜S35の処理で選択した牌(Xi)の図柄コードを追加する処理を行う。このとき、RAM42に記憶している14個になった手牌の図柄コードは、図柄コードの上昇順にソートして記憶する処理を行う。
(ステップS37)
ステップS36の処理により牌(Xi)を追加して14個になった手牌が、聴牌するか否かを全図柄別聴牌判定プログラムP26cにより判定し、「自摸れば聴牌」する牌を求める処理を行う。
このステップS37の処理は、次のような手順により行うことができる。
(1)1個の牌を自摸牌として追加し14個になったと仮定した手牌について、前記したステップS8の処理で説明した手順1〜手順6の処理方法を用いて、この手牌に形成されている雀頭、刻子、順子の組合せの判定とその組合せ数を算出する。
(2)上記(1)の処理の結果、刻子や順子が計4組形成されている場合には、14個の手牌からこの4組を形成する牌を除いた2個の牌のうち何れか1個を次の捨て牌操作により捨てると、13個の手牌は、この残り1個の牌の雀頭待ちによる聴牌になっていると判定することができる。
(3)同様に、上記(1)の処理の結果、刻子や順子が計3組、雀頭(対子)が1組形成されている場合には、14個の手牌から刻子や順子の組合せ計3組と、雀頭の1組を形成する牌を除いた残り3個の牌が下記(b1)または(b2)の状態であれば、13個の手牌に牌(Xi)を追加したと仮定した14個の手牌は、聴牌していると判定することができる。
(b1)残り3個の牌のうち、2個が同一の図柄(図柄コード)である。この場合、残り3個の牌からこの同一の図柄2個を除いた残り1個の牌を次の捨て牌操作により捨てると、13個の手牌はシャンポン(対子二組)聴牌の状態になる。
(b2)残り3個の牌に順子を形成するためのターツ(塔子)、カンター(嵌塔)、ペンター(辺塔)の何れかが含まれている。この場合、この残り3個の牌から不要な1個の牌を次の捨て牌操作により捨てると、13個の手牌は聴牌の状態になる。
このように、ステップS37の処理は、内蔵RAM42に記憶している前記ステップS8の手順1〜手順6を実行するプログラムモジュールを使用して処理を行うことができる。さらに、上記(b1)、(b2)の処理を実行するプログラムモジュールを内蔵RAM42に記憶させて実行させると、ステップS37の処理をさらに高速化することができる。
(ステップS38)(ステップS39)
ステップS38においては、現在の13個の手牌に、27種の牌に関する図柄のうち、次の図柄コードを自摸する牌(Xi)として選択する前処理(i=i+1)、すなわち、「一萬」の図柄コードから「中」の図柄コード「1B」まで、27種の牌の図柄コードを自摸する牌(Xi)として選択するための前処理を行う。このプログラム処理は、例えば、プログラム内に記憶している27種の図柄コードのデータテーブルから次の図柄コードを取出す処理を行うことにより可能になる。続いて、次のステップS39に進み、27種全ての牌の図柄コードについて未だ選択する処理を行っていない場合には、再び前記したステップS34の処理に戻るようにする。
(ステップS40)
ステップS37、S37a、S37bの処理でRAM42に記憶した「自摸れば聴牌」となる牌の図柄コードについて、この牌に対応する入球口11a、・・の近傍に設置したフルカラーLED37、・・を点灯させる処理を行う。この処理は、全図柄別聴牌判定プログラムP26cが入球口点灯制御プログラムP28を作動させようにする。
さらに、全図柄別聴牌判定プログラムP26cは、この「自摸れば聴牌」する牌の図柄コードの全てを画像制御基板Kcに制御コマンドと共に送信する。画像制御基板Kcはこの「自摸れば聴牌」する牌の図柄コードを受信すると、自摸れば聴牌表示プログラムP323cによりこの「自摸れば聴牌」する牌の図柄コードに対応する図柄を図22に示すように表示装置14に表示し、さらに、音声・効果音出力プログラムP41により「自摸れば聴牌」する牌がある旨の音声をスピーカー6から出力するようにする。ステップS40の処理が終了すると、自摸れば聴牌判定プログラムP26の処理は終了することになる。
上記した自摸れば上がり牌判定プログラムP25、および自摸れば聴牌判定プログラムP26の処理により、点灯されたフルカラーLED37、・・を消灯するタイミングは、遊技者の次の操作となる自摸操作、すなわち、遊技者が遊技球を発射してこの遊技球が入球口に入球した信号に基いて、メイン制御基板Kaからサブ制御基板Kbに自摸の制御コマンドと自摸した図柄コードが送信されたときに、入球口点灯制御プログラムP28の制御により消灯する。
なお、上記した雀球遊技機1において、メイン制御基板KaのROM41に搭載されている入賞判定プログラムP8も、現在の14個の手牌について、雀頭、刻子、順子の組合せ、およびその組合せ数の判定を行う必要がある。従って、メイン制御基板Kaに搭載するCPUについてもRAMを内蔵したCPUを使用し、前記したステップS8の処理のうち手順1〜手順6と同様な処理を行うプログラムモジュールをこの内蔵RAMに記憶させて実行することにより、入賞判定プログラムP8の処理速度を向上させることができる。これにより、遊技者が自摸操作を行った牌が「自摸れば上がり」になる牌になったときには、直ちに、上がり役完成の演出表示を表示装置14に表示することができるようになる。
さらに、本発明においては、CPU40に内蔵されているROM41aにも高速処理が要求されるプログラムモジュールを予め記憶しておき、遊技機制御プログラムからこの内蔵ROMに記憶したプログラムモジュールを呼び出して実行させることにより、プログラムの実行速度を向上させるようにすることもできる。
また、上記した遊技者の現在の手牌が「自摸れば上がり」、「自摸れば聴牌」、「捨てれば聴牌」する可能性があるか否かを判定するプログラム処理において、この手牌から雀頭、刻子、順子の組合せが判定されるごとに、図15に示す対子・刻子・順子ユニットテーブルを参照してそのユニットコードを求め、この求めたユニットコードから、図11に示す上がり役判定プログラムP29により「自摸れば上がり」、「自摸れば聴牌」、および「捨てれば聴牌」する対象となる上がり役の役を求めることが可能になる。そして、この上がり役を求めることができると、図10に示す上がり役データテーブルを参照して、遊技者が上がり役を完成した場合に獲得できるメダル枚数(上がり役の大きさ)を求めることができる。これにより、本発明を雀球遊技機に適用した場合には、「自摸れば上がり」、「自摸れば聴牌」、および「捨てれば聴牌」する対象となる上がり役に対して遊技者が獲得できるメダル枚数に応じて、「自摸れば上がり」および「自摸れば聴牌」する入球口11a、・・近傍に設置されているフルカラーLED37、捨て牌用ボタンスイッチ16a、・・に設置されているフルカラーLED59a、・・の発光色を変えて発光させることにより、遊技者にゲーム進行の興趣を高めるようなアシスト機能を備えた雀球遊技機にすることができる。
上記の本発明の実施形態については、雀球遊技機を例にして説明したが、本発明は、パチンコ遊技機についても、繰り返して使用され、かつ高速処理が要求されるプログラムモジュールをCPUに内蔵されているRAMに記憶させて実行させることにより、プログラクの実行速度を向上させることができる。例えば、乱数の発生とこの発生させた乱数を利用して大当たりを判定するためのプログラムモジュールを、内蔵RAMに記憶させることにより、より演出効果のある演出画面をタイミング遅れ無くすることができるようになる。また、CPUに内蔵されているRAMの記憶容量は、CPUの型式により2Kb〜32Kb程度に設定されているので、この内蔵RAMの記憶容量を考慮してプログラム開発およびプログラムテストの段階で、如何なるプログラムモジュールを内蔵RAMに記憶して実行させるとプログラム処理の高速化がより高くなるかを確認した上、内蔵RAMで実行するプログラムを予め決定するようにする。
本発明の実施形態を示す雀球遊技機の正面図である。 図1に示す操作パネルの構成を示す正面図である。 図1に示す表示装置に表示する画面例を説明するための図である。 図1に示す雀球遊技機の動作を制御する制御基板の構成例を示す図である。 図4に示すサブ制御基板の構成例を説明するための図である。 図2に示す捨て牌用ボタンスイッチの構成を説明するために、組み立て前の各部材の位置関係を示す図である。 図6に示す捨て牌用ボタンスイッチの一部拡大断面図である。 図4に示すメイン制御基板に搭載されているプログラムの構成例を示す図である。 雀球遊技機で使用する27種の牌の図柄について、この図柄ごとに予め設定された図柄コードのデータ例を示す表である。 雀球遊技機において、上がり役ごとの上がり役コードと遊技者に払い出されるメダル枚数を設定したデータ例を示す表である。 図4に示すサブ制御基板に搭載されているプログラムの構成例を示す図である。 図4に示す画像制御基板に搭載されているプログラムの構成例を示す図である。 雀球遊技機において、捨てれば聴牌する牌を判定するための処理手順の一例を示すフローチャートである。 図13に示す手順を、手牌例に基いて説明するための図である。 対子・刻子・順子ユニットテーブルのデータ構成例を説明するための図である。 図5に示すRAMとRAMのアドレス空間に記憶されているプログラムの配置例を示す図である。 雀球遊技機において、自摸れば上がりになる牌を判定するための処理手順の一例を示すフローチャートである。 図17に示す手順を、手牌例に基いて説明するための図である。 雀球遊技機のゲーム中において、牌の図柄コードごとに開示された牌の個数を算出するための開示個数テーブルのデータ構成例を説明するための図である。 捨てれば聴牌する牌を表示した画面例である。 自摸れば上がりになる牌を表示した画面例である。 自摸れば聴牌する牌を表示した画面例である。 自摸れば聴牌する牌を判定するための処理手順の一例を示すフローチャートである。
符号の説明
1 :雀球遊技機
2 :遊技盤面
3 :操作パネル
6 :スピーカー
7 :ランプ装置
8 :特別入賞装置(アタッカー)
11a、11b、11c、・・・:入球口
12 :ランプ付き飾り装置
14 :表示装置
15 :メダル投入口
16a、16b、16c、・・・:捨て牌用ボタンスイッチ
17 :自摸牌の捨て牌用ボタンスイッチ
21 :自摸牌決定ボタン
22 :払い出しボタン
23 :遊技終了ボタン
24 :遊技開始ボタン
37 :フルカラーLED
40 :CPU
41 :ROM
42 :RAM
42a:内蔵RAM
59a、59b、・・・:フルカラーLED
P1 :メイン基板動作制御プログラム
P5 :自動配牌プログラム
P6 :特別遊技役抽選プログラム
P8 :入賞判定プログラム
P21:サブ基板制御プログラム
P21a:初期化プログラム
P24:捨てれば聴牌判定プログラム
P24d:聴牌判定プログラム
P25:自摸れば上がり牌判定プログラム
P25e:上がり牌判定プログラム
P26:自摸れば聴牌判定プログラム
P27:捨て牌スイッチ点灯制御プログラム
P28:入球口点灯制御プログラム
P31:画像基板動作制御プログラム
P32:画面表示プログラム
Ka :メイン制御基板
Kb :サブ制御基板
Kc :画像制御基板

Claims (2)

  1. RAMを内蔵したCPUと、前記CPUの外部に前記CPUにバスを介して接続されたROMを備えた制御基板を有し、遊技盤に設けた遊技盤面部内に、複数種の牌種から構成される麻雀牌の図柄に対応した入球口を設け、遊技球が入球した前記入球口における麻雀牌の図柄の組合せが予め設定された上がり役の組合せを完成させると遊技者に賞としてメダルを払い出す雀球遊技機において、
    前記ROMには、前記遊技機の動作を制御するための遊技機制御プログラムと、前記制御装置の電源が投入されたときに前記遊技機制御プログラムのうち高速処理が要求されるプログラムモジュールを、前記CPUに内蔵されているRAMに転送して記憶する初期化プログラム手段と、
    遊技者の現在の手牌が14個のとき、この手牌から不要な何れか1個の牌を捨てる操作を行ったと仮定したときに、13個になった手牌が聴牌の状態になるか否かを判定する捨てれば聴牌判定プログラムとが格納され、
    前記捨てれば聴牌判定プログラムは、
    前記14個の手牌についてその牌種ごとの麻雀牌の個数を算出するプログラムと、
    前記牌種別個数算出手段で算出した前記手牌の牌種ごとの麻雀牌の個数について、その何れか1種の牌種の個数を1個減算して得られた前記牌種ごとの個数を3で除算して得た余りの個数を配列した手牌の配列パターンが、13個の手牌が聴牌しているときのパターンである聴牌時の配列パターンに一致するか否かを判定すると共に、前記手牌の配列パターンが前記聴牌時の配列パターンと一致していると判定された場合には、前記1個減算した牌種を求めるプログラムと、
    前記14個の手牌から、前記聴牌パターン判定手段により求められた前記牌種を構成する麻雀牌の図柄の何れか1個を順次捨て牌として削除したときに、前記手牌が聴牌しているか否かを判定するプログラムとから構成され、
    前記遊技機の電源がONされると前記初期化プログラム手段の作動により、前記捨てれば聴牌判定プログラムが前記RAMに転送され、
    前記遊技制御プログラムにより、前記RAMに転送されたプログラムが実行される
    ことを特徴とする遊技機。
  2. RAMを内蔵したCPUと、前記CPUの外部に前記CPUにバスを介して接続されたROMを備えた制御基板を有し、遊技盤に設けた遊技盤面部内に、複数種の牌種から構成される麻雀牌の図柄に対応した入球口を設け、遊技球が入球した前記入球口における麻雀牌の図柄の組合せが予め設定された上がり役の組合せを完成させると遊技者に賞としてメダルを払い出す雀球遊技機において、
    前記ROMには、前記遊技機の動作を制御するための遊技機制御プログラムと、前記制御装置の電源が投入されたときに前記遊技機制御プログラムのうち高速処理が要求されるプログラムモジュールを、前記CPUに内蔵されているRAMに転送して記憶する初期化プログラム手段と、
    現在の13個の手牌に1個の麻雀牌の図柄を自摸して追加すれば、前記上がり役を完成させることができるときに、前記遊技者が前記自摸の操作を行う前に、前記自摸れば前記上がり役を完成させることができる麻雀牌の図柄を判定する自摸れば上がり牌判定プログラムとが格納され、
    前記自摸れば上がり牌判定プログラムは、
    前記手牌に含まれている牌種ごとの麻雀牌の個数を3で除算して得た余りの個数を配列した手牌の配列パターンが、13個の手牌が聴牌しているときのパターンである聴牌時の配列パターンに一致するか否かを判定する聴牌パターン判定プログラムと、
    前記聴牌パターン判定プログラムが前記聴牌時の配列パターンと一致していると判定された場合には、前記手牌の配列パターンを、14個の手牌が上がり役を完成したときのパターンである上がり時の配列パターンに一致させるために追加すべき1個の麻雀牌の牌種を判定する上がり牌種判定プログラムと、
    前記上がり牌種判定プログラムにより判定された牌種について、該牌種を構成する麻雀牌の図柄を順次1個選択して前記13個の手牌に追加したときに、前記手牌が前記予め設定された上がり役を完成させることができるか否かを判定するプログラムとから構成され、
    前記遊技機の電源がONされると前記初期化プログラム手段の作動により、前記自摸れば上がり牌判定プログラムが前記RAMに転送され、
    前記遊技制御プログラムにより、前記RAMに転送されたプログラムが実行される
    ことを特徴とする遊技機。
JP2004170166A 2004-06-08 2004-06-08 遊技機 Expired - Fee Related JP4618667B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004170166A JP4618667B2 (ja) 2004-06-08 2004-06-08 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004170166A JP4618667B2 (ja) 2004-06-08 2004-06-08 遊技機

Publications (2)

Publication Number Publication Date
JP2005348808A JP2005348808A (ja) 2005-12-22
JP4618667B2 true JP4618667B2 (ja) 2011-01-26

Family

ID=35583757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004170166A Expired - Fee Related JP4618667B2 (ja) 2004-06-08 2004-06-08 遊技機

Country Status (1)

Country Link
JP (1) JP4618667B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5004159B2 (ja) * 2006-07-27 2012-08-22 サミー株式会社 雀球遊技機
JP2008228928A (ja) * 2007-03-19 2008-10-02 Samii Kk 遊技機
JP4831762B2 (ja) * 2007-03-29 2011-12-07 サミー株式会社 雀球遊技機
JP4919227B2 (ja) * 2007-03-29 2012-04-18 サミー株式会社 雀球遊技機
JP5004179B2 (ja) * 2007-09-26 2012-08-22 サミー株式会社 雀球遊技機
JP5465839B2 (ja) * 2008-04-24 2014-04-09 株式会社大都技研 遊技台
JP6019354B2 (ja) * 2013-01-22 2016-11-02 株式会社オリンピア 遊技機
JP6307677B2 (ja) * 2016-08-30 2018-04-11 株式会社オリンピア 遊技機
JP6813775B2 (ja) * 2016-10-26 2021-01-13 サミー株式会社 ぱちんこ遊技機

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014705A (ja) * 2000-06-28 2002-01-18 Omron Corp プログラマブルコントローラ
JP2003066939A (ja) * 2001-08-28 2003-03-05 Namco Ltd 演出画像の表示方法、演出画像の表示用プログラム、コンピュータ読みとり可能な記録媒体、及び演出画像の表示装置
JP2004038327A (ja) * 2002-06-28 2004-02-05 Renesas Technology Corp データ処理装置
JP2004129791A (ja) * 2002-10-09 2004-04-30 Olympia:Kk 遊技機における記憶媒体の着脱

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3874536B2 (ja) * 1998-05-27 2007-01-31 任天堂株式会社 携帯型カラー表示ゲーム機およびその記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014705A (ja) * 2000-06-28 2002-01-18 Omron Corp プログラマブルコントローラ
JP2003066939A (ja) * 2001-08-28 2003-03-05 Namco Ltd 演出画像の表示方法、演出画像の表示用プログラム、コンピュータ読みとり可能な記録媒体、及び演出画像の表示装置
JP2004038327A (ja) * 2002-06-28 2004-02-05 Renesas Technology Corp データ処理装置
JP2004129791A (ja) * 2002-10-09 2004-04-30 Olympia:Kk 遊技機における記憶媒体の着脱

Also Published As

Publication number Publication date
JP2005348808A (ja) 2005-12-22

Similar Documents

Publication Publication Date Title
JP4775999B2 (ja) 雀球遊技機
JP4618667B2 (ja) 遊技機
JP4605746B2 (ja) 雀球遊技機
JP4544571B2 (ja) 雀球遊技機
JP4627004B2 (ja) 雀球遊技機
JP2008029472A (ja) 雀球遊技機
JP4618666B2 (ja) 雀球遊技機
JP4461420B2 (ja) 雀球遊技機
JP4748652B2 (ja) 雀球遊技機
JP5392897B2 (ja) 雀球遊技機および麻雀ゲーム制御プログラム
JP4556042B2 (ja) 雀球遊技機
JP2010115251A (ja) 雀球遊技機
JP2009240509A (ja) 雀球遊技機
JP4505791B2 (ja) 雀球遊技機およびそのプログラム
JP5062688B2 (ja) 雀球遊技機
JP5062689B2 (ja) 雀球遊技機
JP4753286B2 (ja) 雀球遊技機
JP5392899B2 (ja) 雀球遊技機および麻雀ゲーム制御プログラム
JP4793861B2 (ja) 雀球遊技機
JP2005218771A (ja) 雀球遊技機
JP5392898B2 (ja) 雀球遊技機および麻雀ゲーム制御プログラム
JP4793849B2 (ja) 雀球遊技機
JP5062892B2 (ja) 雀球遊技機
JP5004179B2 (ja) 雀球遊技機
JP4803575B2 (ja) 雀球遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100514

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100514

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101015

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101021

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees