見出し画像

【プチコン3号】2のべき乗/65536を計算するだけのプログラムで確率計算の原理を覗く

プログラミング初心者の驚きを共有するテキストです。

 ここはプチコン4のマガジンですが、プチコン3号でのプログラミングに慣れてみると3DSの取り回しの良さに気づき意外とタッチペン操作でも捗りました。
 今回はきれいな写真が撮れない都合で「プチコン3号で打ち込んだプログラムをnoteに模写する」といった形で失礼します。

 今回のプログラムは「FOR文でXの値2^0~2^16を計算する」「計算式X/65536と約分した数値をPRINT文で表示する」といった流れです。使用している命令(短縮コードを含む)さえ理解すれば初歩的な部類に入るでしょう。

 noteのコード機能便利じゃんと思ってたけどプチコンの表示と全然違うので結局画像貼るのがベターなんですよね……

'-------------------------------------------
'2のべき乗から確率を調べるやーつ
'2022/03/23
'-------------------------------------------
FOR I=0 TO 16
  X=POW(2,I)
  ?FORMAT$("%5D/65536=%5D/%5D",X,X/X,65536/X)
NEXT
END

 RUNするとこのようになるはずです。

    1/65536=    1/65536
    2/65536=    1/32768
    4/65536=    1/16384
    8/65536=    1/ 8192
   16/65536=    1/ 4096
   32/65536=    1/ 2048
   64/65536=    1/ 1024
  128/65536=    1/  512
  256/65536=    1/  256
  512/65536=    1/  128
 1024/65536=    1/   64
 2048/65536=    1/   32
 4096/65536=    1/   16
 8192/65536=    1/    8
16384/65536=    1/    4
32768/65536=    1/    2
65536/65536=    1/    1

で、これが何の役に立つかというと

 計算結果がよく昔ながらのゲームやパチスロなどで言われているレアな当たりを引く確率と同じです。

 これは僕が今作ろうとしているゲームでの何種類かのボーナスが入るそれぞれの確率の目安になります。

 制作中のゲームでは単純なIF文の繰り返しで乱数の値に応じたボーナスが支払われるプログラムになっていますので、例えば乱数の値を代入した変数Dが127未満の場合はボーナス+5点、Dが128以上かつ207未満の場合はボーナス+25点といった具合のものを作っていました。そちらはRND(256)とでもいうような乱数の範囲でしたが、今度からはRND(65536)の範囲で抽選しようということです。

 現在制作中のゲームについては、積もる話もありますがある程度整理してから執筆に取り掛からないと夜更かしを避けるゲーム作りの報告書作成のために徹夜したなんて笑えない事態に陥りますので、また別の機会に。

 今回の報告も含めてここまでです。それでは。

(終)

この記事が気に入ったらサポートをしてみませんか?