どうも。完全な趣味でパチスロを自作している人です。
今回はリール制御、コントロール方式の「引き込み制御」の部分を作ります。
簡単に言うと「成立フラグはビタ押しじゃなくても、4コマ以内なら引き込むよ」的なお話です。
自作パチスロについて記事のまとめはこちらです。
全体の流れのイメージ
私の自作パチスロは第1停止のみテーブル制御で行います。
第2停止の部分をコントロール方式の制御で行います。
とても大事な事ですが、これは「素人の僕が考えた最強のコントロール方式」です。
正解なのか分かりませんし、このコントロール方式だけで出目を再現してもイケてない出目になる事でしょう。
球児の再来です。
何かしらのスパイスは必要になると思いますので悪しからず。
それでは、コントロール方式「全体」のシーケンス図はこんな感じ
今回の記事は、上記の「引き込み処理」の部分のみ取り扱います。
引き込み制御について
4コマ滑りの範囲内であればアバウトな目押しでも引き込むよ。という制御です。
それを実現するためには成立フラグと停止出目をぶつけて
「小役がテンパイしているかどうか?」
もしくは
「小役がテンパイできる範囲内に存在するか?」
の判定を行います。
「範囲内にあったらその分スベらせる」
ただそれだけです、はい。
入賞ラインについて
入賞ラインは5ラインとします。
リールの出目は、各リールごとに配列で管理します。
下段を要素0、中段は要素1、上段は要素2としました。
取り込む出目について
第1停止(左リール)は既に停止していますので、出目が確定しています。
ですので、出目情報を管理してるクラスから3コマ分の情報を取得しておきます。
で、次がポイントです。
第2停止(中リール)まだ停止直後でこれからスベリコマ数を算出しますので、下段から枠上4コマまでの7コマ分の情報をリール配列を管理するクラスから取得します。
引き込み範囲内で「成立フラグをテンパイできるか?」のチェック
成立フラグの小役がテンパイするかどうか、左リールと中リールを5ライン分チェックするわけです。
5ラインチェックしてもテンパイしない場合は、第2停止を1コマ滑らせた事にして再度5ラインチェックします。(実際のリールを滑らせるわけではありません。あくまで配列での話です。)
これを枠上4コマまでチェックを繰り返し、引き込み範囲内に小役がある場合はそのコマ数分スベらせます。
無い場合はスベリ制御を行いません。
5ラインをチェックする手順
成立フラグをリプレイと仮定して説明します。
どのラインも同様の手順です。
- 検証ラインの第1停止の出目が成立フラグと等しいか?
- 第1停止が等しく無い場合は、次のラインを検証(1に戻る)
- 第1停止が等しい場合は、第2停止が成立フラグと等しいか?をチェック
- 第2停止が等しく無い場合は、次のラインを検証(1に戻る)
- 第1停止も第2停止も等しい場合は小役テンパイとなる。
先にも記載していますが、5ラインチェックしてテンパイ無しだった場合は、第2停止を1コマ滑らせた事にして再度5ラインチェックします。
押し順による入賞ラインの違い
1.2.3ラインはどの押し順も同様ですが、4.5ラインのチェックは少し変わります。
下記のような検証ラインになりますので、押し順によって使い分けましょう。
アクティビティ図(フローチャート)
第2リール停止から引き込み制御までのアクティビティ図を載せておきます。
実際のコードはお粗末な感じになってますので記載しません。
アクティビティ図で許してください。
私のこんな記事を最後まで見ていただいてありがとうございます。
次は「蹴飛ばし制御」を作れたら良いな〜と思います。
それでは!
コメント