[JS]乱数を作成してサイコロ機能を実装する
JavaScriptには、乱数を生成するための便利なメソッドとしてMath.random()が用意されています。このメソッドと他のMathメソッドを組み合わせることで、さまざまな用途に応じた乱数を簡単に生成することができます。
1. Math.random()の基本
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までのランダムな整数が表示され、サイコロを振った結果のように見えます。
5. Math.floor()の代わりにMath.ceil()やMath.round()を使う
乱数生成では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