ブログ内検索

2019年11月23日土曜日

16-1 PO調整機構(1)

ゲームのシステムもまあまあ整ってきたところで、そろそろPO調整システムを実装しようと思っている。
本当は昨日やっていたが、突然USBが抜けた扱いに(抜けていないにも関わらず)なった音がして、その後更新をしてセーブをすると「CommonEvent.dat 0KB」という我々にとってスーパーデラックス0%0%0%並みの衝撃になる事案発生。
それを解決するのに時間がかかってしまったので、日を改めて今日ついに実装していくことにする。

それに伴い、ハニーエイトの設定案件としてスタートの周囲に何個番号があるか、ということでPO率調整をしようと思う。(ほかにも数字の偏りや、端っこに出現しやすい、などもあるが今回は考えない。理由は端っこの定義とかをすると面倒なので。周囲のマスを判定してマスが存在しない(=0)が1以上とかの要件が必要になるためである)
真ん中付近で、周囲のマスを判定して番号があれば1以上が返される。
がよく見てみるとマスが存在しない場合は0を返すので、上のプログラムだと実は変数0番に1以上の値があるとそれをカウントしてしまう…という問題があることがぱっと見るとわかるがその場所はなんとなく変数として使っていないので問題ない。
カウントが1以下ならやり直し、としているが、これを設定ごとに「1以下やり直し」「2以下やり直し」の2つに分ければよいだけである。
ただもしかすると周囲に3個マスがないような配置になることもあるので、一定回数やって周囲3を見つけられなければおとなしく周囲2でよい、ということにする。
目安としては100回程度。

さて、ここまで準備が整ったところで、いよいよPO率がうまく働いているか長時間稼働させてテストする。

PO率調整には状態値を用いる。最初は状態値50で、以後目標POより低ければ状態値を+1補正し、高ければ-1補正する。するといい感じにある値に収束するのではないか、という考え。かなり単純でこの方法だとすぐさま攻略法がばれてしまうわけだが(最初に100BETして合計WINが合計BETより下がった時点で最低BETにして内部値を上昇させまくって100になったころ合いを見計らって大量BETするというやり方)最初なのでこれくらいでよい。

だがしかし、PO率80%に相当する状態値が0~100にない場合は、おそらく0か100の値をとってしまうだろうとみている。その場合は、0や100に達したゲームの状態値を引数とした各種確率を見直すことになる。
いずれにせよ、長いことゲームを回さなければなにもできないので、ゲームスタートや。

今は9ゲームのPO率80%を目標として動作させている。
ナインビンゴは現状ではほかのゲーム依存なので、POの調整のしようがない。
本物ならばラインがそろえば配当GETなどがあるのでそれでいけるかもしれないが。

ワンダーチャンスとかを含めればこの80%に少し加わってくるので、たぶんPO率88%とか90%とかいう実機に近い形を出せるのではないかと期待している。

このPO率調整という楽しい遊びができるようになるまで一体何十万行のプログラムを書いたことか…。

次の記事では、ある程度の階数ゲームを行わせた時の結果と考察を書く予定。