スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DQ5カジノスロット1000回転以降に関して

以前からカジノのスロットの1000回転以上を知りたいという感じの要望はあったので
自動的に判別するプログラムを組んでみました

ここを読む人はカジノの仕組みとか今さらですが一応簡単に
カジノのスロットの出目は戦闘など大きく乱数がずれる行為を行わない限り
ゲーム開始時からの経過時間1/30秒ごとに推移しパターンは5種類しかない。
つまり1/6秒ごとに1回転乱数がずれるということ。
さらにリールには16個の柄がある(仮に0~Fで区別する)
100コインのリールは5つなので
スロットの出目は例えば0C52Dなどと表せる
仮にこれがパターン1だとするとパターン2はC52D+何かとなる。
ここまでわかっているので後はこれをプログラム落とし込むだけ

画像認識に関してはOpenCVというものを使う。
3年の授業の時に少しだけしか触った経験がないので苦労した。
仕組みとしては動画を読み込み(仕様上無圧縮かつ4:3で録画したものでなければならない)
1秒ごとに画面をキャプチャする
その時スロットが止まってるなら(この判定はコメントボックスが出ているかどうかで判定しました)
各出目の位置の色を判別して7Bスベプチを判断する。
その後文字に変換した出目からリールのどの位置に属するのかを判断する
出力はテキストで各行に回転数:乱数と出る
ただしリール1及び4は一意に定まらないため
○列目が定まりませんと次の行に書き
更に次の行に動画の経過時間を書く

パターン1~5を出力するプログラムはなぜかJavaで
先のテキストを一意に決まらない部分を修正し読み込ませるだけ
しかし乱数列がパターン1の時にしか対応していないのは問題
最初にパターン何かを指定してあと少し修正するだけでパターン1~5どれでもいいように拡張できそう

目下の問題は画像を変換するプログラム
読み込ませる動画が非圧縮形式でなければならずやたらと重い
さすがに1秒10Mだと6時間で200GBを超える
3000回転までならまだ何とかなるが
10万回転とか調べようとするならこれだと無理

一応キャプボからの信号を受け取る関数があるみたいだけど
自分の環境だとなぜか認識せず(GV2-USB)
この対処方法等わかる人がいたらコメントお願いします
Direcshowとか使わないといけないのかなぁ
そもそも画像処理は自分の専門がいなので見当違いのこと言ってるかも。

現状報告終わり
スポンサーサイト

コメントの投稿

非公開コメント

最新記事
カウンター
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。