乱数ができない!(質問掲示板

投稿: User icon mini yossi7 投稿:2014/09/04 18:09:04(最新:2014/09/08 16:41:08)
題名の通り乱数ができません
釣りをランダムにつれた!つれない!的にしたくてまず「有効条件」に
「getFlag("釣竿")」と書き
スプリクトは

# スクリプトに関する質問の場合はこの下にスクリプトを記載してください
# ↓↓↓スクリプトはここから↓↓↓
speak("釣りをしてみる")
rand(2)
if r < 1
  speak("つれなかった")
if r > 1
  speak("つれた")

# ↑↑↑スクリプトはここまで↑↑↑

と言う風にしたのにできません!!
どうしたらいいのでしょうか



PCはWindows8です

コメントする

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

コメント一覧

User icon mini yossi7(投稿日:2014/09/08 16:38, 履歴)
返信が遅れてすみません。
なんとかできました。
また、できれば「つれなかった」と言う確率を上げたいです。
教えていただきありがとうございました
User icon mini yossi7(投稿日:2014/09/08 16:41, 履歴)
↑自己解決
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2014/09/04 18:38, 履歴)
使う条件演算子が間違ってるのとif文の書き方が間違ってます
(演算子についてはここを参考にするといいかもしれません)

if・while・cese・def文にはそれぞれの最後に「end」を書く必要があります
(参考)


「>」と「<」は〇〇より上・下という意味なので、
rand(2)、つまり出てくる結果が0か1の数値だと、2個目のif文は絶対に通りません。

(なお、この場合ifを二回使うのではなく、elsifを使うと分かりやすくなると思います)
speak("釣りをしてみる")
r = rand(2)
if r < 1
  speak("つれなかった")
elsif r >= 1
  speak("つれた")
end


(idohokaさんのコメントを見て思い出しました、変数を設定しないといけません。)
Material 204926 1 mini 井戸乃博士(投稿日:2014/09/05 02:14, 履歴)
エラーメッセージで
"variable is not defined"みたいな表示が出ていませんか?
まず2行目で「r = rand(2)」として、
変数を定義しておかないとだめです。

次にrand(x)というスクリプトは「0」から「x-1」までの間の数を
ランダムに返します。
rand(2)とした場合、出て来る数字は「0」から「1」までです。
ですから上の書き方だと、rが1より大きくなることはないので、
上の「つれなかった」しか出てきません。
個人的な経験から言うと、rand()の中の数字は大きい数(例えば11とか101とか)にしておいた方が、いろいろな結果を設定しやすいと思います。

最後にif分の書き方が間違っていますね。
下の池ちゃんさんの書き方に合わせてみてください。