伊達要一@とうきょうDD954の書棚と雑記

伊達要一の読んだ本の紹介と書評、それと雑記

本日の更新(2017/02/22)


昨晩は22時半に風呂に入ってから、暫く野暮用を片付けて24時ごろにエチゾラム*1ゾルピデム*2エバミールを飲んで24時過ぎに寝ました。
ここ最近では珍しくまともな時間に寝たような気がするのですが、実際にしっかり眠りについたのは25時過ぎでした。



今朝も寝坊モードで8時起床。徐々に起床時間がまともになってきているのは良いとしても睡眠が強烈に浅くなっています。寝起きは本当に眠気が酷くて、起きてからも体のだるさが抜けないですね。
眠りが浅いということは夢を見るということで、例によって物凄く疲れる夢を見ました。もうなんというか色々とダメなんじゃないかと思ってなりません。



上で書いた野暮用というのがExcelをシコシコ弄ってどうのこうのの話なんですが。
ごくごく個人的な話です。昔からVBA(というかマクロ)があまり好きじゃなくて基本的に関数の組み合わせでワンライナーで済ませるのが好きなんですよね。可読性は著しく悪くなるので良くないことは分かっているんですが、どうにもVBAやマクロが好きになれない。

それでシェル芸の話です。上田さん*3が提唱したと勝手に思っているんですが、定義はこちらになります。

シェル芸の定義バージョン1.1
マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。

シェル芸 – 上田ブログ

要するに、後々のことを考えるならばソースコードが残る形で済ませるべきものをシェル*4でカチャカチャカチャ、ッターン!*5と済ませることですね。

Excelの関数も似たようなところがあるような気がするんですが、気がするだけでしょうか。



ギャンブルとしてのパチスロというよりも、筐体そのものの話です。
基本的にパチスロはリール回転スタートした時点で抽選を実施して「当籤」「外れ」を決めています。その上でリールの挙動を制御して当籤のときには当籤になるような、外れの場合には外れになるような制御をかけているわけです。例えば、当籤が成立した際に液晶画面や筐体のランプなどでそれとなく示した上で遊技者にその通り操作させて当籤させる*6だとか、外れの際に出目が揃わないようにリールを制御するといったような具合です。
機種によっては当籤状態だとしてもその後遊技者が目押しで当籤を確定させねばならないものが多い*7ですが、基本的な仕組みとしては全てリール回転スタートの段階で全て決まっているわけです。

ここの抽選ロジックがある意味パチスロのキモになってくる部分なのですが、面白いかどうかを抜きにしてごくごく単純に抽選をするだけであればRaspberry Piあたりにプログラムを入れて動かせばいいわけです。物凄く単純化して、ビッグボーナスという大当たり、レギュラーボーナスという当り、ベルという小役があるパチスロ機があるとすれば、以下のようなロジックを組めばいいわけです*8

#!/bin/bash

LOTTERY = $(($RANDOM % 47))

if $(($LOTTERY % 47)) -eq 0 ; then
  echo 'BIGBONUS'
elif $(($LOTTERY % 29)) -eq 0 ; then
  echo 'REGULARBONUS'
elif $(($LOTTERY % 7)) -eq 0 ; then
  echo 'BELL'
else
  echo 'blank'
fi

上述のシェルスクリプトのところで「echo」としているところに、それぞれの制御命令*9を書けば一応最低限のパチスロらしい制御は可能となるわけです。

実際はもうちょい複雑だったり、最近のパチスロ機では液晶画面での表示もあったりするのでシェルスクリプトで全部やるのは厳しいと思いますが。

抽選プログラムはこんなふうにそれほどハードルの高いものではないわけですが、問題はリールなんですよね。ステッピングモーターを使って動かすわけですが、まずもってイチから作るとなるとかなりハードルが高いです。ステッピングモーターとリールを組み合わせるのはなんとなくイメージはつくけど、それを3つ使ってそれぞれ制御信号を受けて協調的に動かさなきゃならないわけで。

手っ取り早くということであれば、実機を購入して*10リールや筐体部分を流用することが考えられるのですが、その場合リールや筐体に信号を送るための命令をリバースエンジニアリングしないといけないわけで。
今のところの思いつきとしては、「統括制御&スタートレバー制御&抽選」「左リール・ボタン制御」「中リール・ボタン制御」「右リール・ボタン制御」「筐体制御」と5台くらいのRaspberry PiをスタックしてそれぞれにGPIOやUSBポートを使って制御することを考えているんですが、技術的に可能なんでしょうか。

自作パチスロ機。うーむ、まだまだ先は長いです。



これを書いた元ネタのツイートがこちら。
今上天皇の譲位についてはある意味あの発言によって昭和のときのような不謹慎騒動が起きないだけまだマシだし建前上今の御代が続くということにしてもまだ許容範囲だとは思うけども、昭和63年という年の9月以降だったりすると仕方がないとはいえ色々と思うところがある役所関係者も多かったのではないかと思う次第です。まあ、所詮文書の話と割り切ればそれまでだとは思うわけですが。



こちらは久々にはてブでやります。ちょっと思うところがあったので。

*1:デパスのゾロ薬

*2:マイスリーのゾロ薬

*3:千葉工業大学未来ロボティクス学科の准教授

*4:要するにLinuxCLI端末で打ち込むアレとかWindowsPowershellとかのこと

*5:ワンライナーというところをエンターキーを一発打つところで再現しているつもり

*6:かつて意図的に外すことでよりメリットを得られるように打つことで遊技者に有利に操作する方法があったりした。詳しくはリプパン外しを参照のこと

*7:北電子ジャグラーシリーズという機体は当籤確定を示すランプが点灯した後、目押しで図柄を揃えて始めて当籤となる。内部的にはランプが点灯した段階で当籤状態だが目押しが出来ないといつまでたっても当籤しない。ただ、内部的には当籤しやすいような制御をかけている筈

*8:bashなのは筆者の趣味。確率は筆者の願望……は半分冗談で、実際に存在する機種の確率を使うのはもしかしたら拙いのかもというところもあったので

*9:筐体への信号やリールへの信号

*10:中古であれば個人でも購入することが可能