最近はFlashネタばかりですね。はまってしまったんでしょう。。。
Flashでよりクリエイティブなものを表現するのに、ランダムというのはとても重要な要素となってきます。PHPやJavascriptなど他の言語でもよく利用されますが、ActionScript3でも確認しておきます。
まず、Flashで0以上1未満の乱数を発生させるためには関数「Math.random()」を使用します。ランダム生成関数ではよく1を含むかどうかが議論されますが、AS3では1は含まないとされています。
ここからは数学の話になりますが、、、一般的な考えに沿うと0~5の中からランダムに数字を発生させたい場合に、まず6にMath.random()を掛けます。すると答えの範囲は0~5.99999になります。これの小数点を捨てると0~5になるわけです。
Math.floor(Math.random() * (5 + 1))
次に一歩発展させて、3~8のうちからランダム数字を発生させたい場合ですが、基本的な考え方は一緒です。まずは上と同じように0から、というところに考えを持ち込むために3を引きます。つまり、0~5でランダム数を発生させた結果に、後で3を足せばよいわけです。
Math.floor(Math.random() * ((8 - 3) + 1)) + 3
以上により、x~yの範囲でランダム数値を求めるための式はこのようになります。
Math.floor(Math.random() * ((y - x) + 1)) + x
ついでになりますが、文字をランダムで発生させたい場合は、予め羅列した文字列を用意しておきます。その文字列の大きさを数字に置き換えれば、さっきと考え方は一緒ですね。何番目の文字を取得する、ということをランダム数値を発生させて指定すればよいのです。
var txt:String = 'abcdefghijklmnopqrstuvwxyz'; txt.charAt(Math.floor(Math.random() * txt.length));
コメントする