今まで習ったjavascriptで3連ガチャを作りましょう。
使う機能
- function関数
- 配列
- for文
- if文
配列に値を追加する
fruits = ['apple', 'orange', 'banana']; fruits.push('strawberry');
- ガチャのカテゴリー、本数、確率を決め、変数に代入
- 画像をダウンロードして、カテゴリーごとに配列に登録
- 0〜99まで出るランダムを作成し、確立によってカテゴリーを確定させる
- カテゴリーが確定したら、もう1度ランダムで各カテゴリー内でキャラの抽選をする
- domでimg要素を表示させる
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ワンピースガチャを作る</title> <style> img{ width: 200px; } </style> </head> <body> <button onclick="randamChara();">ワンピース3連ガチャ</button> <div id="box"></div> <footer> </footer> <script src="js/script.js"></script> </body> </html>
script.js
function randamChara(){ let star3 = ['01.png','02.png']; let star2 = ['03.png','04.png','05.png','06.png']; let star1 = ['07.png','08.png','09.png','10.png','11.png','12.png']; console.log(star1); let star1Ratio = 80;//★1が出る確率 let star2Ratio = 96;//★2の確率は★1+★2の確率 let star1Total = 6;//★1キャラの総数 let star2Total = 4;//★2キャラの総数 let star3Total = 2;//★3キャラの総数 let chara = []; for(let i=1;i<4;i++){ let randomNum = Math.floor(Math.random()*100); console.log(randomNum); if(randomNum < star1Ratio){ let star1Num = Math.floor(Math.random()*star1Total); chara.push(star1[star1Num]); }else if(randomNum < star2Ratio){ let star2Num = Math.floor(Math.random()*star2Total); chara.push(star2[star2Num]); }else{ let star3Num = Math.floor(Math.random()*star3Total); chara.push(star3[star3Num]); } } document.getElementById('box').innerHTML = '<img src="img/'+chara[0]+ '" alt=""><img src="img/'+chara[1]+'" alt=""><img src="img/'+chara[2]+'" alt="">' }