コラム⑦:あまり書かないといーながら2回目のスロットに関しての記事!
コラム⑦:あまり書かないといーながら2回目のスロットに関しての記事!笑
一回前のコラムでスロットに関して掲載させて頂きましたが、読んで頂いた方から、口頭では勿論、ブログ内でも、まぁまぁの反響がありました。
中学・高校から苦手だった科目。
そう!それは「数学」
ただ、それが社会人となり、自分の趣味に活かせるとしたら、また別物!しかも、「儲かる理論」の為なら!!
数学の計算が苦手でも、今の現代「理論」と「方程式」そして、パソコンの「計算頭脳」があれば攻略できるのではないか?
その機体とは?
ジャグ連の謎、今では様々な機種で設けられている乱数の取得に関して、できるだけ分かりやすく記述していこうと思います。
初めに、乱数の取得は、大きく分けると、3つ4つあると言われてます。
1・CPU内蔵乱数
一概に、CPU内蔵乱数と言われても…。
「はい?何のことですか?」
と聞かれて終わりです。
パチンコ店で働いた経験があり、ジャグラーの内部にコイン補充などを行った経験がある方は、わかるかもしれません。
まづ、下記の文章に記述されている「フェッチ」に関してです。
「フェッチ」とは、CPUの動作のうち、メモリから命令コード(インストラクション)を取り出してくる動作のことであります。 フェッチはCPUの命令実行において最初に行われます。フェッチ動作によって取り出されたインストラクションはCPU内部のレジスタに転送され、デコード(=暗号化されたデータの解読)を経た上で、実行されます。(Googleより引用)
これは、内部を見れば分かるのですが、メイン基盤のZ80-CPUに内蔵されている、Rレジスタ(CPUの命令フェッチ毎に値が更新されるリフレッシュレジスタ)を利用して、0~127(7ビット)の乱数を生成する方法で、意図的な偏りがない乱数と警視庁より認定されています。
この値は、それ単体ではあまり使用されず、次に記述する2、3で得た乱数を演算加工する為や、プラス乱数方式の次のカウンタ値を決めるために用いられることがあるようです。
2・ソフト乱数(プラス乱数方式)
ソフトウェアで0~65535(16ビット)の範囲を+1ずつ加算して、遊技者がスロットのスタートレバーを叩いた瞬間の、カウンタ値を大当たりの判定に使用します。これは、「人間のゆらぎを利用した乱数」なのです。
カウンタ1周は0.38〜0.05秒以下と決められています。
また、カウンタが1周すると、最初に戻るのではなく、ある値(通常はRレジスタ値を加算。
これもメーカーにより生成方法は様々だと思います)を次回カウンタが始まる番号に変更し、体感器などによる狙い撃ちを困難にしています。
3・ハード乱数
CPUと完全非同期の発振機とカウンタ(1パルス入力されると1つカウントが上がる仕組みのIC)を利用して0~65535(16ビット)の範囲を1ずつ加算して、遊技者がスロットのスタートレバーを叩いた瞬間の、カウンタ値を大当たりの判定に使用します。先程と同様人間のゆらぎを利用した乱数です。
カウンタ1周は先程記述した通りなのですが、0.05秒以下と決められています。
ソフト乱数より周期は高速ですが、プラス乱数方式と違って周期性があり、体感器などで狙われやすい危険があります。
(Googleより引用)
ジャグラーに関しても、勿論AT機に関しても、言うなればパチンコでもそうなのですが…。大当たりは、たいていある範囲に固まっています。
例としてパチンコの「CR新世紀エヴァンゲリオン使徒再びSFW」
この機種はハード乱数だったと私は思います。
記述3で取得したカウンタ値(乱数)が、8001~8189の範囲に入れば見事大当たりとなります。
この範囲を決めている判定テーブルは、メーカーによって固定だったり、遊技中に変動したりします。
そして、大当たりしてから、通常・確変などを再判定する機種から、8001~8133は確変、8134~8189は通常大当たり・・・という風に初めから、決まっている機種もあり、本当に様々なようです。スロットについても、BBの範囲や子役の範囲の考え方はパチンコの判定テーブルと似ています。
そして、これら1~3を組み合わせた4が存在します。
4・ハード乱数+(ソフト乱数 or Rレジスタ)
3で抽出したハードカウンタ値に、2のソフトカウンタ値や1のRレジスタ値を演算し、その結果を最終的な大当たり判定用の乱数とする方法です。
演算方法はメーカーによって異なります。
例えば、前回ゲームで確定した乱数を次回の乱数生成に用いたり、
前回ゲームで取得したRレジスタ値(それもレバーONだけでなく各リール停止時のタイミングでも取得)を利用したり、単純に足し算だけでなく、係数を掛けたり、ビットの左右ローテートやビット反転・指定ビットを置き換えなどメーカーにより様々なようです。
2015年現在のスロットは、みなさんご存知の通り、この4が主流だと思います!!
また普通、大当たりはレバーONで決まると思っている方が多いと思いますが、意外と各リールの停止(前回ゲームの第一~第三リール停止時に取得したRレジスタ値)が大当たりやART継続の判定式に用いられている台が多いようです。実際ジャグラーもそうだと思います。
また、パチンコのほうでは、以前は京楽・藤商事・サンヨーなどがソフト乱数とのことでしたが、今はCPUがV4チップ、IDNACチップに変わってきた関係で、
パチンコもハード乱数がメインとなってきています。
同じメーカーでも昔と比べてパチンコが連チャンしなくなったのは、
ハード乱数になったせいもあるかも知れませんね。
以上基礎的な乱数の知識についてベラベラと申しましたが、数学好きの素人の私が計算した結果なので…。本当に個人が調べた結果なので、間違いがあったらご了承ください。
そして、補足なのですが。
コンピュータは完璧な乱数を単体で作り出す事が不可能で、どこかで周期のある擬似乱数しか作れません。そこで、最もポピュラーな乱数作成法として、作り出した擬似乱数に現在の時間を掛けます。
例えばですが…。2015年12月21日23:38だとしら、201512212338でしょうか?この現在の時間という数字は二度と同じ数字が訪れないので、そうした二度とループしない数字を掛ける事で本物の乱数とする場合がプログラミング上では多いと思うのです。しかし、プロの様な方に意見を聞いてみるとジャグラーの乱数生成では時間が掛けられていない。さらには結果論として前回抽選に近い部分を拾おうとする場合が多い、とも。
この時、最後まで詳しい抽選方法は聞けないままでしたが、少なからずメーカーは「完全な乱数を作ろう」とはしておらず、むしろ荒れてくれた方が好都合と思っているのは内部的に見ても事実なんでょうけど。
完全な乱数を作りたければ、王道の「擬似乱数x現在の時間」で作れば良いんですから。
Googleからの引用も含めダラダラと書いてきたわけですが。
ここまでコンピューターで計算しても、何をしても結局は毎回のヒキなんでしょうけど。笑
ただ、一発告知のジャグラーですが、こんな形で機械は判断し、私達プレイヤーに「あの青い光」を届けている!という事です。
この事を少しでも理解しながら、プレイするのも常勝につながる一歩ではないでしょうか?