【スクラッチ】レアキャラの出現率を操作できるガチャを作ろう

身の回りの物をプログラム
Screenshot
Scratch星人
Scratch星人

みなさん、ゲームは好きですか?

Scratch星人も一時期、スマホゲームにハマった時期がありました。

スマホゲームの楽しみのひとつと言えば「ガチャ」ですよね!

「今日こそ、レアキャラ引くぞ!」とワクワクしながら、スマホの画面に釘付けになります。

さて、この記事ではそんな「ガチャ」を作成してみようと思います。

しかし、ただのガチャではありません。

レアキャラ(大当たり)の出現率を操作(設定)できる仕様にしてみます。

少し難しい考え方も登場しますが、興味がある人は、記事を読んで、自分だけのオリジナルガチャを作成してみてください。

確率とは

まず、ガチャを作成する上で、絶対に避けて通れないのが「確率」です。

確率は、中学2年生の授業で習うようなので、小学生の人は難しく感じてしまうかもしれません。

ガチャに必要な確率の考え方を、なるべく分かりやすく解説するので、理解してから読み進めてください。

りんごが10個あります。
その中の1個が「毒りんご」だとします。

10個の中の1個という考え方を分数で表すと、1/10(10分の1)になります。

1/10を確率の考え方だと、「りんごを10回食べたら1回は毒りんごに当たる可能性がある(かもしれない)」と言い表すことになります。

別の数字で考えてみます。

毒りんごの数が2個の場合、2/10を約分して1/5(5分の1)となるので、5回に1回は毒りんごに当たる可能性がある。ということになります。

では、実際のゲームのガチャはどのようになっているかを解説します。

例えば、レアキャラ排出率が1%だとします。
1%を分数にすると1/100(100分の1)になります。

つまり、100回引けば1回当たるかもしれない

ということになります。

しかし、ここで気をつけなければいけないのが、100回引けば必ず1回当たるわけではない。ということです。

これが確率の難しいところですが、今回のガチャを作成する上では、そこまで理解しなくてもいいかもしれません。

確率について、最低限覚えて欲しいことは以下の通りです。

  • 確率0%の場合:0/100→0なので絶対に当たらない
  • 確率1%の場合:1/100なので100回引いたら1回当たるかも
  • 確率20%の場合:20/100→1/5なので5回引いたら1回当たるかも
  • 確率50%の場合:50/100→1/2なので2回引いたら1回当たるかも
  • 確率100%の場合:100/100→1なので必ず当たる

作成するガチャの要件

Screenshot

あまり多くても大変なので、ガチャで登場するものは「大当たり」「当たり」「普通」「ハズレ」の4種類にします。

大当たりの出現確率を設定できるようにします。

登場する割合のイメージは以下の通りとします。

  • 大当たり:1%
  • 当たり:19%
  • 普通:40%
  • ハズレ:40%

ポイントは4つの数字を足して100%になるようにすることです。

なので、大当たり確率が5%になれば、それに連動して他の確率も調整されるようにプログラムを作成します。

当たり判定には、1〜100までの数字を使用して、リストに乱数表を作ります。
(難しいので、あとで解説します)

プログラムを見てみよう

Screenshot

まずは、大当たり確率を設定した後に、それに応じて、その他を設定するプログラムです。

普通確率とハズレ確率の部分が分かりづらいと思うので解説します。

大当たり確率が1%の場合

100-1(大当たり確率)÷2は49.5となり、切り下げをしても49にしかなりません。

9.5を切り下げて40にしたいので、大当たり確率をに0.1を掛けて計算した後に10を掛けて戻すということをしています。

当たり確率は、100から大当たり確率、普通確率、ハズレ確率を引いた残りということになります。

Screenshot

次は乱数表を作成するプログラムです。

1〜100までの数字がかぶらない(重複しない)ように、リストに格納します。

乱数100(リスト)に乱数(変数)が含まれるではないまで繰り返す、とすることで、重複しない数字が出るまで何度も乱数を生成し、最終的にリストに追加します。

その結果、リストの長さが100になったら、全ての数字が格納されたことになります。

ブロック定義の中身は下のコードとあわせて説明します。

Screenshot

このプログラムが、確率変動の鍵となる部分です。

抽選(変数)に格納された数字が、リストの何番目にあるかを判定して、ガチャの結果に反映させています。

乱数カウンタ(変数)は、リストを1番目から順に確認するために使用します。

判定(変数)の数字は以下の通りです。

  • 1:大当たり
  • 2:当たり
  • 3:普通
  • 4:ハズレ

例えば上の画像の場合、抽選の数字は「51」で、リストの4番目に格納されているので、判定は2(当たり)となります。

  • 大当たり:1番目だけ(今回の数字は42)
  • 当たり:2〜20番目まで
  • 普通:21〜60番目まで
  • ハズレ:61〜100番目まで

例えば、大当たり確率を30%にした場合は以下のようになります。

  • 大当たり(30%):1〜30番目まで
  • 当たり(10%):31〜40番目まで
  • 普通(30%):41〜70番目まで
  • ハズレ(30%):71〜100番目まで

まとめ

確率変動ガチャの作り方について解説しました。

数字ばかりで、少し読みづらい内容になってしまいましたが、実際にコードを真似して作りながら、分からない部分は記事を読むことで、きっと理解できるようになります。

オリジナルガチャにするための改造ポイントは、たくさんあります。

  • オリジナルのキャラを登場させる
  • キャラを増やしてみる
  • ハズレや普通確率をオリジナルで設定してみる
  • 出現確率を0.1%などにも対応させる

下に行くほど難しくなりますが、ぜひ挑戦してもらえたら嬉しいです♪( ´▽`)

コメント

タイトルとURLをコピーしました