mugen 各桁フラグ作った。
bit演算で01の32個のフラグを作れるのは分かった!
次は10進数のままで0~9の各桁フラグを作ろう。
21474836417で10桁です。少ないな。10桁目は2までしか使えない、実質9桁。
頭の体操がてら組み立ててみた。
trigger1=var(0):=1111111111
一桁目を取り出すには。
10分の1して、floorで小数点を払い、10倍する。その後元の変数と減算した差が一桁目の数値となる。
簡単に言うと一桁目を0にして元の変数と減算すればいい。
trigger1=var(1):=(var(0)-10*floor(var(0)*0.1))
1111111111が10分の1で111111111.1になりfloorで111111111.0になって10倍すると1111111110になったので元の変数と減算すると1が出てくる。var(1)に入って終わり。簡単。
整数変数で少数使うなだけど最終的に整数になればよいのだ。
2桁目は
trigger1=var(2):=(floor(var(0)*0.1)-10*floor(var(0)*0.01))
1111111111が100分の1で11111111.11になりfloorで11111111.00になって【10倍】すると111111110.0になる。元の数字より一桁少ない1億になる。
一桁目を0にしないと1~9で取り出せないので。
その後、元の変数1111111111を10分の1して111111111.1にfloorで払って111111111.0元の数値より一桁少ない1億です。
これで減算すると1桁の数値が出てくる。1です。
【】でくくった場所で100倍して1111111100元の数値1111111111と減算すると2桁の数値11がでてきます。
元の数値を10分の1して111111111.1 1桁目を払い111111111.010倍して1111111110からの減算なら10です。
も一個やんなきゃいけない。
3桁目は
trigger1=var(3):=(floor(var(0)*0.01)-10*floor(var(0)*0.001))
-10*floorの部分は固定でそれ以外は0が増えていきます、汎用化しましょう。
N桁目
trigger1=var(2):=(floor(var(0)*0.1^A)-10*floor(var(0)*0.1^B))
A=(取り出す桁の数字-1)
B=(取り出す桁の数字)
例えば1桁目ならA=0,B=1なので
trigger1=var(2):=(floor(var(0)*0.1^0)-10*floor(var(0)*0.1^1))
となるので、一桁目で出てきた。
trigger1=var(2):=(floor(var(0))-10*floor(var(0)*0.1))
この式が出てきます。^0は1です。
ちゃんと読めばわかりやすくかけた気がする。
さんすーだぞさんすーもうすーじでだめだってひとはあきらめて。
1234567890でやったほうが分かりやすかったかも、書き直すのめんどいからいいや。
引き算の答え何だっけでちょっと考えた。加減乗除和差積商にゃんね。
ブログ代わりに使うやつ @kakuriyuki
★で称える
この小説が面白かったら★をつけてください。おすすめレビューも書けます。
フォローしてこの作品の続きを読もう
ユーザー登録すれば作品や作者をフォローして、更新や新作情報を受け取れます。ブログ代わりに使うやつの最新話を見逃さないよう今すぐカクヨムにユーザー登録しましょう。
新規ユーザー登録(無料)簡単に登録できます
関連小説
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます