[JS]乱数を作成してサイコロ機能を実装する
JavaScriptには、乱数を生成するための便利なメソッドとしてMath.random()
が用意されています。このメソッドと他のMathメソッドを組み合わせることで、さまざまな用途に応じた乱数を簡単に生成することができます。
Math.random()
の基本
1. Math.random()
は、0以上1未満の範囲でランダムな浮動小数点数を生成するメソッドです。例えば、以下のように使います。
const randomNumber = Math.random();
console.log(randomNumber);
このコードを実行すると、毎回異なる0以上1未満の数値がコンソールに表示されます。
2. 整数の乱数を生成する
0以上1未満の数値をそのまま使うことはあまり多くなく、通常は整数を生成したい場合がほとんどです。これを実現するために、Math.floor()
メソッドを使用します。
Math.floor()
は、小数点以下を切り捨てて、整数部分だけを返すメソッドです。例えば、Math.random()
で生成された数値を10倍してからMath.floor()
を使うと、0から9までのランダムな整数が得られます。
const randomInteger = Math.floor(Math.random() * 10);
console.log(randomInteger);
このコードを実行すると、0から9までのランダムな整数が表示されます。
3. 任意の範囲の乱数を生成する
特定の範囲で乱数を生成したい場合、少し工夫が必要で単純な積の値では生成で
きません。例えば、5から15までのランダムな整数を生成する場合、次のようにコードを書きます。
const min = 5;
const max = 15;
const randomInRange = Math.floor(Math.random() * (max - min + 1)) + min;
console.log(randomInRange);
このコードでは、Math.random() * (max - min + 1)
によって0からmax - min
までの値を生成し、min
を加えることで範囲を5から15にシフトさせています。
4. サイコロの目をシミュレートする
サイコロの目をシミュレートしたい場合、1から6までの整数をランダムに生成します。これは以下のように実装できます。
const diceRoll = Math.floor(Math.random() * 6) + 1;
console.log(diceRoll);
このコードを実行するたびに、1から6までのランダムな整数が表示され、サイコロを振った結果のように見えます。
Math.floor()
の代わりにMath.ceil()
やMath.round()
を使う
5. 乱数生成ではMath.floor()
がよく使われますが、他にもMath.ceil()
やMath.round()
を使って異なる結果を得ることができます。
-
Math.ceil()
: 小数点以下を切り上げます。たとえば、1.2
は2
になります。 -
Math.round()
: 四捨五入します。たとえば、1.5
は2
になり、1.4
は1
になります。
Math.ceil()
を使ったサイコロ
例: const diceRoll = Math.ceil(Math.random() * 6);
console.log(diceRoll);
このコードはサイコロの目をシミュレートするもので、Math.ceil()
を使うことで、1から6の範囲の数を生成しています。
まとめ
Math.random()
とMath.floor()
を組み合わせることで、さまざまな範囲や用途に応じた乱数を生成することができます。これらの基本を押さえておくことで、JavaScriptでの乱数生成が可能となります。
Discussion