0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サイコロ・シュミレータ (CASIO fx-5800P BASIC用ソースコード)

Posted at

1.はじめに

サイコロ・シュミレータは3個までのサイコロを振るためのプログラムです。「あ!しまった!サイコロがないじゃん…」というときに(あるのか?)使っていただけます。

2.プログラムの使い方

DICE - 1 (1).jpeg

  • 実行するとHOW MANY DICE(1-3)?と聞いてくるので、サイコロの個数(最大3つまで)をテンキーで入力しEXEを押してください。画面は3と入力したところ

DICE - 2 (1).jpeg

  • 指定した数のサイコロが振られ左詰めで表示されます

    ⚃⚅⚅

  • 右下( )には総てのサイコロの目の合計を表示します
  • 2個以上サイコロを振った場合、3行目の右端にはそれぞれのサイコロの出目を数字で表示します
  • なにかキーを押せば、続けてサイコロを振ります(以下続く)
  • 終了したい場合(Quit▶)はマイナスキー「ー」を押してください

DICE - 3 (1).jpeg

  • 画面がクリアされ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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?