1.はじめに
サイコロ・シュミレータは3個までのサイコロを振るためのプログラムです。「あ!しまった!サイコロがないじゃん…」というときに(あるのか?)使っていただけます。
2.プログラムの使い方
- 実行するとHOW MANY DICE(1-3)?と聞いてくるので、サイコロの個数(最大3つまで)をテンキーで入力しEXEを押してください。画面は3と入力したところ
- 指定した数のサイコロが振られ左詰めで表示されます
⚃⚅⚅
- 右下( )には総てのサイコロの目の合計を表示します
- 2個以上サイコロを振った場合、3行目の右端にはそれぞれのサイコロの出目を数字で表示します
- なにかキーを押せば、続けてサイコロを振ります(以下続く)
- 終了したい場合(Quit▶)はマイナスキー「ー」を押してください
- 画面がクリアされDoneと表示された終了画面です
- ACボタンで強制終了もできますが、プログラム編集モードに入ってしまうので、プログラムを壊すリスクを避けるためマイナスキーで終了することをお勧めします
3.ソースコード ※fx-5800P BASIC用です
注意: ソースは可読性UPのため字下げして//でコメントを書いていますが、いずれもCASIO BASICではエラーになりますので、実際にご利用される際には除去して下さい。
- GetKeyのキーコードだけ差し替えればfx-9750GIIIやfx-CG50などでも動作可能です(試していません)
- プログラムで使用する変数
- N:サイコロの数(1〜3で任意に入力)
- I:ループ索引(サイコロの個数分表示のため)
- D:サイコロの乱数を格納
- K:キー入力判定用
- T:サイの目の合計を格納
Do // サイコロの個数を入力(3個まで)
"HOW MANY DICE"
"(1-3)?→N
LpWhile N<1 Or N>3
Int(N)→N
While 1
0→T:CLS // サイコロの目の合計Tをクリア
Locate 1,4,"---+---+---+( )"
For 1→I To N // サイコロN個を振って表示する
RanInt#(1,6)→D
N>1⇒Locate 13+I,3,D // サイ2個以上:目をアラビア数字でも表示
T+D→T
If D=1:Then
Locate (I-1)x4-1,2," 0 "
Else If D=2:Then
Locate (I-1)x4-1,1,"0 "
Locate (I-1)x4-1,3," 0"
Else If D=3:Then
Locate (I-1)x4-1,1,"0 "
Locate (I-1)x4-1,2," 0 "
Locate (I-1)x4-1,3," 0"
Else If D=4:Then
Locate (I-1)x4-1,1,"0 0"
Locate (I-1)x4-1,3,"0 0"
Else If D=5:Then
Locate (I-1)x4-1,1,"0 0"
Locate (I-1)x4-1,2," 0 "
Locate (I-1)x4-1,3,"0 0"
Else // サイの目6
Locate (I-1)x4-1,1,"0 0"
Locate (I-1)x4-1,2,"0 0"
Locate (I-1)x4-1,3,"0 0"
IfEnD:IfEnD:IfEnD:IfEnD:IfEnD
Next
Locate 14,4,T // N個のサイの目を合計して( )内に表示
Locate 14,2,"Q▶r∠θ”:Locate 16,2,"- " // "Q▶-"と表示
GetKey→K
Do:GetKey→K:LpWhile Not(K)
If K=67:Then:CLS:Break:IfEnd // "-"キーでプログラム終了
// AC以外のキーなら無限ループ
WhileEnd