プチコン3号&BIGまとめWiki

プチコン3号&BIG 非公式初心者講座 : 第9章 RND()命令

パンくずリスト

プログラマーからひとこと

あなたがここを読んでいるということは、おそらくもうIF~THEN文を使いこなせるようになったころだと思います。

いや、ビット演算子とかは、まあ、いいんです。「IF 条件文 THEN 命令」の形をおぼえていればそれでOKです。
おめでとう、それをおぼえたあなたはかなりイケてます。

このIF~THEN文と、ある命令さえあれば、もうゲームがひとつできてしまうのです。
けっきょくもうひとつ命令をおぼえるのかよ! と思うかもしれないですが、ここまで読んできたあなたにとっては、もうよゆうすぎるくらいの簡単さです。
重要な命令なのに簡単なんて、わりと世の中ちょろいもんです。
その命令は、RND()命令といいます。

でたらめな数

ワンパクくん

アール・エヌ・ディー命令……。リパブリック・ナウ・デッド (Republic Now Dead) のこと……か。

神崎

いやいやいや。

インテリくん

ワンパク君は英語がニガテでも、そういうボキャブラリーは持ってるんだね。でもRNDは「でたらめ」って意味の「ランダム」の略だよ。

ワンパクくん

なんだと? デタラメをオレに教えようってのか! なかなかパンクだぜ、いいドキョウじゃねえか!

神崎

なにもかもオカシイような……。やる気になってるからいいか。

インテリくん

じゃあカンタンな例から説明するよ。

  1. A=RND(10)

RND()命令は、こういうカタチで使うんだ。

神崎

左のAは変数だね。

インテリくん

こうやって()でかこんだ数字と命令の組み合わせで、変数にトクベツなアクションをさせる命令は
「関数」というんだけど……ややこしいから、今は気にしなくてもいいかな。

ワンパクくん

シンセツなんだかフシンセツなんだかわかんねェな! まあいいや、ツマリA=RND(10)と書いたら変数Aに10でRND()した数が入るんだろ? よくワカんねェけど。

インテリくん

ダイナミックなリカイだけど、かなり合ってるよ。じゃあRND関数でなにが起きるのか、このプログラムで見てみよう!

  1. A=RND(10)
  2. PRINT A
  1. RUN
  2. 8
  3. OK
神崎

変数Aに8が入った……ということだよね。

インテリくん

ところが、もう1回RUNすると、どうなるかな?

  1. RUN
  2. 7
  3. OK
ワンパクくん

ン? 同じプログラムなのになんでAに入る数字が変わってんだ?

  1. RUN
  2. 4
  3. OK
  4. RUN
  5. 0
  6. OK
  7. RUN
  8. 9
  9. OK
ワンパクくん

オイオイ、RUNするタビに違うコトになってるじゃねーか! デタラメもいいとこだぜ……。デタラメ……? ハッ!?

インテリくん

もう分かってきたかな。RND()は、「でたらめな数字を出す」という関数なんだ。
いまのプログラムは()の中に10が入ってるから、0~9までの10コのうちから数字をひとつ出すんだね。

神崎

ゼロから始まるから、RND(10)と書いても一番大きい数字は9までなんだね。

ワンパクくん

またコンピューターの「ゼロから数えはじめる」クセかよ……いつもながら、ピンとこねェぜ……。
まてよ……じゃあ、ゼロはいらねー、1から10で数えたいってトキはどうすりゃいいんだ?

神崎

えぇと、A=RND(11)にすれば……あれ、ダメだ。これでもゼロは出てきちゃうか。

インテリくん

ちょっと頭のタイソウになるから、これを読んでる人もどうすればいいのか考えてみてね!

ワンパクくん

テメエ、その学習っぽさはハナにつくぜ! いいからサッサと教えやがれー!

インテリくん

では、答を見てみようかな。こういうコトさ!

  1. A=RND(10)+1
ワンパクくん

……ン?

神崎

ああ! そうか! 0~9のどの数字が出ても、それに1を足したら1~10になるね!

インテリくん

モニタの前のみんなは気が付いていたかな?
同じように、10から100までの数字を出したいときは、RND(91)+10と書けばいいね。

ワンパクくん

ウーム……カンタンに言ってくれるが、コンピューター式の数え方はアタマがイテえぜ。
だいたい、この命令がなんのヤクに立つってんだ? ケッキョク、数字をデタラメに言ってるだけだろ?

インテリくん

いちばんよく見るランダムの使い方といえば、RPGのダメージかな。もちろんデタラメな数字だけがすべてじゃないけど、同じステータスのモンスターから同じ攻撃を受けても、ダメージの数はちょっとずつ違うだろう?

神崎

よく「乱数」って言われるやつだね。

ワンパクくん

なるほど「ラン」ダムだから、「ラン」スウってことか。

神崎

そ、それはちがうんじゃないかな……。

インテリくん

ほかにもアクションゲームの敵の動きにも使われたりするよ。たとえばコッソリRND(2)で0~1の乱数を出してみて、0なら左に、1なら右に向かう、とかね。

ワンパクくん

言われてみれば、落ちゲーで次に落ちてくるブロックも乱数だしな……。オイオイ、コイツはかなり使える命令じゃねェのか!?

ハカセ

さよう。ほとんどのゲームにはどこかで乱数が使われていると言っていいじゃろうな。せっかくじゃから、次回はジッサイに乱数を使ったゲームのサンプルプログラムも見せてしんぜよう。

今回のまとめ

RND()関数
(変数)=RND(最大数)
ゼロから最大数マイナス1までのでたらめな数字を変数に入れます。
A=RND(10)で変数Aに0~9までの数字のうちどれかが入ります。
A=RND(10)+1とすれば、1~10になります。

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 3084 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.180 秒 | このページの最終更新 : 2022/09/20 (火) 12:48:48 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30