最近の雀魂という麻雀のゲームにはまっています。雀魂ではガチャを回すことができ、キャラクターやアイテムなどが手に入ります。そこで思ったのは「このガチャのシステム簡単に再現できないか」ということです。今回は、ゲームのガチャシステムをJavaScriptを使って簡単に再現したいと思います。
1.どうやってガチャの排出確率をプログラムするか
まず、ガチャの排出確率を決めるプログラムを書いていきたいと思います。今回、自分はMathオブジェクトを使ってコードを書いていきたいと思います。
例えば、5%の確率でキャラクターがでるようなガチャのシステムは…
最初に0~99のどれかひとつの数字をランダムにきめるコードを書いていきます。
const randNum = Math.floor(Math.random() * 100);
これにより、randNumには0~99のどれかひとつの数字が代入されます。
次にif文を使い、5%という確率を再現するコードを書きます。
const randNum = Math.floor(Math.random() * 100);
if (randNum >= 95) {
console.log("キャラクター!!");
} else {
console.log("キャラクターじゃない...");
}
これにより、randNumが95以上99未満の5つの数字のうちのどれかだった場合”キャラクター!!”と表示されて、それ以外だった場合”キャラクターじゃない…”と表示される簡単な確率をプログラムすることができました!
雀魂の排出確率を再現する
雀魂ではガチャでキャラクターが出る確率が5%、装飾品が出る確率が15%、それ以外の素材が80%という確率です。これをコードで再現します。
const randNum = Math.floor(Math.random() * 100);
if (randNum >= 95) {
console.log("キャラクター!!");
} else if (randNum >= 80) {
console.log("装飾品!");
} else {
console.log("素材");
}
このコードを説明すると…
- “const randNum = Math.floor(Math.random() * 100);” 0~99のどれかひとつの数字をrandNumに代入する。
- ”if (randNum >= 95) {
console.log(“キャラクター!!”);
}” もしrandNumが95以上の場合”キャラクター!!”と表示する。 - ”else if (randNum >= 80) {
console.log(“装飾品!”);
}” もしrandNumが95以上ではないが80以上、つまり、80から94の14つの数字のうちどれかの場合“装飾品!”と表示する。 - ”else {
console.log(“素材”);
}” もしrandNumが80以上でもなければ”素材”と表示する。
これにより、雀魂のガチャの排出確率を簡単に再現することができました!
おわりに
今回はキャラクター、装飾品、素材というざっくりとしたくくりで排出確率を再現しましたが、次回は、具体的にどのキャラクターが出るか、どの素材が出るかをJavaScriptを使って再現します。
コメント