※内容がアレなので、すぐ消すかもしれません。ご了承ください。
ネットのまとめブログによると、
とあるクレーンゲームがマニアに完全攻略されてしまい、商品が取り放題で、
使用停止・緊急バージョンアップ待ちになっているそうです。
ざっくりまとめると、
・イオンやレンタルショップなどの商業施設に置かれている、○ンビーノというクレーンゲーム。
メーカーは○OKADO。設置店舗は1千店規模?
・1回100円?で、商品は任天堂スイッチ、ダイソン掃除機、アップルWatchなど数万の高額品。
※ゲームセンターは自主規制で800円以下の商品しか置けないため、適用外の商業施設に設置。
・カプセルをつかんでも、98%が上昇中・上昇後・移動中にアームの力が抜けて落とす仕組みらしい。
2%しか普通にカプセルを運ばない(動画内の数字を引用)
・マニアが中古筐体ごと購入し、解析したところ
ROMのバージョン2.0のみ、
カプセルをつかんで上空で戻ってくる横移動中、力が抜けてギリギリで落とす演出がされるところ、
移動位置の判定が、ボタンの長押しで誤認すると判明。バグですね。
・結果的に、1000~5000円程度の費用で高額商品がゲットできる
・動画投稿主は、数人でチームを組んで関西~関東まで遠征、
前編だけで、10万円の投資で約100万円分の商品をゲット。+動画の再生収入?
投稿主の操作はルール内なのですが、利益がもはや遊びの範囲を超えていますし、
筐体の製造メーカーはどうなってしまうんだろう、と思いました。資本金2千万円みたいだけど。
今では全国のゲーム機で「使用不可」の貼り紙が貼られて、遊べなくなっているようです。
気になるのは、どうしてプログラムでこんなことが起きてしまったのか、です。
私も素人で詳しくないですし、推測ですが、
水平移動中にボタン押下した時間をカウント=移動距離とするところ、アーム降下中もカウントアップを
続けていたんでしょうか。
自分だったら、こうプログラムする、みたいなのを書きます。
【正】
[ループ]{
[水平移動中の処理]{
[水平ボタン押下判定]{ ←水平移動中のみ、内部で移動距離が加算される。
移動距離=+1 ←アームが戻るとき、移動距離のカウントをもとに、途中でカプセルを落とす演出
}
・・・
}
[アーム降下中の処理]{
・・・
}
}
【誤】
[ループ]{
[水平ボタン押下判定]{ ←アーム降下中も、水平移動ボタンを押すと、内部で移動距離が加算されてしまう
移動距離=+1 距離を”長く”誤認するので、アームが戻る途中でカプセルが落ちなくなる
}
[水平移動中の処理]{
・・・
}
[アーム降下中の処理]{
・・・
}
}
こんな簡単な原因ではないかもしれませんが・・・。
ボタン押下処理が割り込みで別関数だったりすると、あるかも。
デバッグ時に移動距離の変数を表示しながら、ボタン同時押しまで試せば気付けそうですけどね。
追記:
アームが戻る途中、空中でカプセルを落とす演出は
動画を見る限りバージョン1.7→2.0で追加されたようです。
やっぱりプログラム改変で条件パラメータを後付けした際、移動距離をカウントする処理(場所)が
微妙だったのではないでしょうか。
あくまで推測です。
追記2:
コインを投入する前からボタンを押しておくと、移動座標が誤ってカウントアップされるらしい
という情報がネット上に載っていました。真偽はわかりません。
電気工事士2種技能の勉強が近づいているのに、
うだうだと書いてしまいました。
自信ないけど頑張ろう・・・。