乱数について(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/05/09 22:23:09(最新:2011/05/11 18:34:11)
乱数の使い方が今一つ分かりません

例えば、1~6までを設定して
1=当たり
2~5=もう一回
6=はずれ
みたくするのはどうすればよいのでしょうか

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/05/11 18:34, 履歴)
スクリプト言語のマニュアルなんて便利なものがあったのか…
気づかんかった…
   mini ___(投稿日:2011/05/11 02:59, 履歴)
関数リファレンスとは別に、スクリプト言語のマニュアルもあります。
そちらを一読なさっては如何でしょうか。
  スクリプト言語のマニュアル

代入と比較の区別は付きますか?
dise =  1  # これでdiseに1を代入。
dise == 1  # これでdiseと1を比較。等しいならtrue。

という風になっています。

分岐をさせるには二通りのやり方があります。
 if elsif end文か、case when end文ですね。
if (dise == 1)
  #処理内容
elsif (dise == 2)
  #処理内容
elsif …(ry
  #…(ry
elseif (dise == 6)
  #処理内容
end

もしくは

case (dise)
  when 1
    #処理内容
  when 2
    #処理内容
  when …(ry
    #…(ry
  when 6
    #処理内容
end

まあ、どちらもマニュアルを読めば理解できるかと。


エラーと言っても色々ありますので、
解決しなかった場合、単に「エラーが出た」ではなく、
エラーメッセージを添えるなどして頂くと、
別の質問の時に回答がスムーズに行えるかと思いますよー。
User icon mini 退会したユーザー(投稿日:2011/05/11 02:32, 履歴)
あっ、Diceとdiceになってる
でも直してもエラーになった^^;
User icon mini 退会したユーザー(投稿日:2011/05/11 02:13, 履歴)
数字だけを表示するのは

dice = rand(6) + 1
speak( "", dice )

で、わかったのですが
数字によって変化させるのにはどうすればいいんでしょうか
出た数字が1の場合は

dice = rand(6) + 1
if Dice = 1 ?

でもこれだと分岐が出来ないから

dice = rand(6) + 1
case
if Dice = 1
speak
elsif Dice = 6
speak ?

でもエラーが出てしまう
やっぱり基礎から学ばないと駄目ねー
Nyan mini rurun9(投稿日:2011/05/10 01:06, 履歴)
えーと、書き方というより仕組みについて。

関数はスクリプトに書かれたら実行されるんですが、そのときに「返り値」というのが出るんです。
実行した結果どうなった、というシステムからの報告ですね。
この返り値というのは、受け取らなければスルーされます。

単に
rand(6)

と書いただけでは、実は何も変化は起こりません。
結果を受け取らずに捨てられているからですw

そこで変数を用意して返り値を受け取ってみましょー。
一度変数に入れてしまえば、いつでも確認できます。
dice = rand(6)+1
speak( "dice = ", dice )



同様に、例えば
speakWithSelect(うんたらかんたら)

というのがありますが、コレは「選択肢付の文章をウインドウに表示しつつ、何番目の選択肢を選んだのかが返り値となる」という関数なのです。
だから case ~ when ~ end で拾って分岐させているのです。

showImage(画像ID番号)みたいなのは、失敗するときは画像がリソースに無いという程度なので返り値を拾うまでもない、という事ですね。

trueかfalseが返り値となる関数もあるので、気になったら関数リファレンスを確認してみましょー。
Logo mini hightoller(投稿日:2011/05/10 00:22, 履歴)
ちと使い方が違う予感。
1~6の整数が欲しいのであれば、
Rand(5)で0~5までの整数を作ってから、1足せばいいかな。
Dice = Rand(5) + 1
  if Dice = 1
  sp
  elsif Dice = 6
  sp
  else
  sp
  end

User icon mini 退会したユーザー(投稿日:2011/05/09 22:42, 履歴)
え~とつまり

rand(0<=x<7)
rand(0)
speak("当たりですよ")
rand(1<=5)
speak("もう一回やれよ")
rand(6)
speak("はずれですこのばか")

でいいんですかね

ってか、コメントはっや!
3分も経ってねぇ
   mini ___(投稿日:2011/05/09 22:25, 履歴)
乱数(サイコロ編)
上記の方にアレやコレやと色々書いていますので、ご参照ください。