プロフィール

pueblo del script
作者
azul-palazzo
作者プロフィール
業務PG暦6年、趣味のPGは10年以上の微妙な中堅プログラマ。言語はVB, VB.NET(ASP.NETも込), Java, JSP。WSHはオフィシャルなEngineであるVBScript, JScript両方をカバー。最近はRubyやDMonkeyをかじろうかなと考えている。あとネコアレルギーの疑いも何のその、無類のネコ好き。
メッセージを送る

»プロフィール

マイサイト



記事

WSHで実用的な乱数を取る

WSH

公開日:2009/04/17 00:00

以前に乱数系列の初期化方法を載せましたが、今度は実用的な乱数の使い方を載せる事にしましょう。

乱数とは単純明快に説明しますと、「サイコロ」ですね。何面でも作成できるような。
では乱数がどのような所で使用されているかと言いますと、1番身近なのはゲームですね。
例えば、勇者の攻撃力が10でスライムの守備力が5で、モンスターに与えるダメージが単純に、

攻撃力−守備力

で求められる場合、 スライムに与えるダメージは常に5ではないですよね?
結構3〜6ぐらいなどのばらつきがあるはずです。
このばらつきを発生させているのが乱数なのです。

よって、実際にはこのような式になるはずです。

(攻撃力−守備力)+乱数

さて、乱数の取り方ですが、乱数系の関数の実行結果は基本的に小数で返されるので、いざ使おうとしても使いにくいのが現状なので、これを整数化するようにしましょう。

次の例では、1から10までの範囲で乱数を取ります。

[VBScript]

Const MAXVALUE = 10 'As Long

Randomize Time()

WScript.Echo CInt(Rnd(1) * MAXVALUE + 1)

[JScript]

var MAXVALUE = 10;

WScript.Echo( Math.ceil(Math.random() * MAXVALUE) );

実際に使用する場合は、MAXVALUEの値は自分が欲しい値に書き換えて下さい。
あと、VBScriptで使用する場合は以前にもお話しましたように、Randomizeステートメントで乱数系列を初期化するのをお忘れずに。

»コメント(0)一覧

クリップ