トピック
くらやみ tsubasa1219

RNDを使ったサイコロの作り方

RNDを使ってサイコロを作りたいのですが、0が出てしまいます…0を出さないようにするにはどうすればいいですか?
2そうだね
プレイ済み
返信[1]
親投稿
say sayer.exe
+1すればいいのだ ? rnd(6)+1
3そうだね
プレイ済み
返信[2]
親投稿
ようすけ youslzh
サイコロがスプライトなら、0なら「1」のサイコロ絵とかでもいいのでは。
1そうだね
プレイ済み
返信[3]
親投稿
ゆうさん^^ budou12817
@LOOP q=rnd(7) if q==0 then @LOOP print q こんなことするより+1した方が楽だわ()
1そうだね
プレイ済み
返信[4]
親投稿
sayさん: 正攻法。定石みたいなもの。 ようすけさん: 変数上は0〜5で扱い、表示の際に工夫する手法。 ゆうさん: とりあえず0〜6で、希望しない0が出てしまったときは再抽選(RND)するやり方。今回は適さないけど、場合によってはこういうやり方もあり。 みたいな感じですよね。基本的に乱数は0〜範囲の値しか取得出来ないので、それを加工して欲しい値にするのが定石です。なのでサイコロに限らずN1〜N2の数値が欲しいなら、 R = N1 + RND(N2 - N1 + 1) が基本形かな。N2 - N1 + 1は値の範囲を求めてます。+1するのはRND命令が0から指定した値-1の値を返すので+1しないと範囲として足りないからです。
4そうだね
プレイ済み
返信[5]
親投稿
KNTK kotanke3.14
実は RND(n)だと 出てくる数字が0~n-1までに なるのです なのでRND(6)+1でいいと思います
0そうだね
プレイ済み
返信[6]
親投稿
くらやみ tsubasa1219
皆さんありがとうございます!また1つ学べました!
1そうだね
プレイ済み