本日の更新(2017/02/22)
本編夢の予告が流れ始めたので寝る。おやすみ
— Yohichi Date (@Yohichi_Date) 2017年2月21日
昨晩は22時半に風呂に入ってから、暫く野暮用を片付けて24時ごろにエチゾラム*1ゾルピデム*2エバミールを飲んで24時過ぎに寝ました。
ここ最近では珍しくまともな時間に寝たような気がするのですが、実際にしっかり眠りについたのは25時過ぎでした。
おはいおございます。相変わらずの寝坊モードに加えてとてつもなく睡眠が浅く非常に眠気が残って辛い……
— Yohichi Date (@Yohichi_Date) 2017年2月21日
今朝も寝坊モードで8時起床。徐々に起床時間がまともになってきているのは良いとしても睡眠が強烈に浅くなっています。寝起きは本当に眠気が酷くて、起きてからも体のだるさが抜けないですね。
眠りが浅いということは夢を見るということで、例によって物凄く疲れる夢を見ました。もうなんというか色々とダメなんじゃないかと思ってなりません。
VBAで本来やった方がよさげなものを無理やり関数を組み合わせて解決するのって、シェル芸に通じるものがある……のか?
— Yohichi Date (@Yohichi_Date) 2017年2月21日
上で書いた野暮用というのがExcelをシコシコ弄ってどうのこうのの話なんですが。
ごくごく個人的な話です。昔からVBA(というかマクロ)があまり好きじゃなくて基本的に関数の組み合わせでワンライナーで済ませるのが好きなんですよね。可読性は著しく悪くなるので良くないことは分かっているんですが、どうにもVBAやマクロが好きになれない。
それでシェル芸の話です。上田さん*3が提唱したと勝手に思っているんですが、定義はこちらになります。
シェル芸の定義バージョン1.1
シェル芸 – 上田ブログ
マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。
要するに、後々のことを考えるならばソースコードが残る形で済ませるべきものをシェル*4でカチャカチャカチャ、ッターン!*5と済ませることですね。
Excelの関数も似たようなところがあるような気がするんですが、気がするだけでしょうか。
以前からパチスロの自作って出来ないものかとつらつら考えているのだが、やはり一番ハードルが高そうなのはリール周りの制御だよなぁ、と
— Yohichi Date (@Yohichi_Date) 2017年2月22日
ギャンブルとしてのパチスロというよりも、筐体そのものの話です。
基本的にパチスロはリール回転スタートした時点で抽選を実施して「当籤」「外れ」を決めています。その上でリールの挙動を制御して当籤のときには当籤になるような、外れの場合には外れになるような制御をかけているわけです。例えば、当籤が成立した際に液晶画面や筐体のランプなどでそれとなく示した上で遊技者にその通り操作させて当籤させる*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月以降に「昭和100年」とか書かなきゃならなかった担当者も色々ともにょる気分だったんだろうな…… https://t.co/EJ4xaZ2prE
— Yohichi Date (@Yohichi_Date) 2017年2月22日
これを書いた元ネタのツイートがこちら。
「公文書は全部元号で書かないといけない」というおかしな習慣のせいで「平成96年」とか「平成131年」とかいうある意味ぎゃくに不敬な元号表記がまかり通ってしまうのである。 #daycatch pic.twitter.com/lzzOANXj8g
— Simon_Sin (@Simon_Sin) 2017年2月22日
今上天皇の譲位についてはある意味あの発言によって昭和のときのような不謹慎騒動が起きないだけまだマシだし建前上今の御代が続くということにしてもまだ許容範囲だとは思うけども、昭和63年という年の9月以降だったりすると仕方がないとはいえ色々と思うところがある役所関係者も多かったのではないかと思う次第です。まあ、所詮文書の話と割り切ればそれまでだとは思うわけですが。
これって全科目の話じゃなくて、教員が手薄になりがちな科目の話じゃないのかと。あたかも全科目に跨ってという印象を与えるのはどうもなぁ。 / “予備校の「裏メニュー」にすがる悲しい大学:日経ビジネスオンライン” https://t.co/mgMeuYOb2y
— Yohichi Date (@Yohichi_Date) 2017年2月21日
こちらは久々にはてブでやります。ちょっと思うところがあったので。
*4:要するにLinuxのCLI端末で打ち込むアレとかWindowsのPowershellとかのこと
*5:ワンライナーというところをエンターキーを一発打つところで再現しているつもり
*6:かつて意図的に外すことでよりメリットを得られるように打つことで遊技者に有利に操作する方法があったりした。詳しくはリプパン外しを参照のこと
*7:北電子のジャグラーシリーズという機体は当籤確定を示すランプが点灯した後、目押しで図柄を揃えて始めて当籤となる。内部的にはランプが点灯した段階で当籤状態だが目押しが出来ないといつまでたっても当籤しない。ただ、内部的には当籤しやすいような制御をかけている筈
*8:bashなのは筆者の趣味。確率は筆者の願望……は半分冗談で、実際に存在する機種の確率を使うのはもしかしたら拙いのかもというところもあったので
*9:筐体への信号やリールへの信号
*10:中古であれば個人でも購入することが可能