前回は、関数 hoge() のカッコの秘密と、最初から用意されている便利な組み込み関数(Math.random())を使って、ランダムにおみくじを引く技を覚えましたね。
今回は、ゲームをさらに面白くするための2大魔法、『もしも(条件分岐)』と『何回も(ループ・繰り返し)』を学んでいきましょう!スマホゲームで大人気の「10連ガチャ」も、この仕組みで作られています。
「もし大吉なら?」道を変えるのが条件分岐(if文)
ゲームを作っていると、「大吉が出たときだけファンファーレを鳴らしたい!」「凶が出たら『今日はのんびり過ごそう』と励ましたい」という場面がよくあります。
そんな「もし〜なら」を叶えてくれるのが、英語の if(イフ) です!
if (result === "大吉") {
alert("🎉 大当たり!今日は最高の一日になるよ!");
} else if (result === "凶") {
alert("☔ 気をつけて!でもラッキーアイテムはチョコレート!");
} else {
alert("運勢は " + result + " でした!");
}
・if (条件):「もしこの条件に当てはまるなら、ここを実行!」
・else if (条件):「そうでなくて、もしこっちなら、ここを実行!」
・else:「どれにも当てはまらない時は、ここを実行!」
※ === は「左と右が完全に同じ!」という意味の合図です。
一瞬で10回引く!魔法のループ(for文)
スマホゲームのガチャでよくある「10連ガチャ」。もしプログラムで10回引こうと思ったら、同じコードを10回もコピペして書かなきゃいけないのでしょうか?
いいえ、そんな面倒なことはしません!人間なら手が疲れる繰り返し作業も、パソコンなら1行の指示で 1秒間に何万回でも一瞬で繰り返してくれます。
この繰り返しを行うのが for(フォー)文 です。
for (let i = 0; i < 10; i++) {
// ここに書いた処理が、きっちり10回繰り返される!
}
暗号みたい?分解すると超シンプル!
この for (let i = 0; i < 10; i++) は、カウンター係のロボット「iくん」への指示書です。
let i = 0:iくんのカウンターを「0」にセット!i < 10:「カウンターが10未満なら、作業を続けてね!」i++:「1回作業が終わるたびに、カウンターを1増やしてね!」
これだけで、iくんが 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 と10回数えながら、同じ処理を猛スピードで実行してくれます。
10連おみくじガチャを実際に動かしてみよう!
メモ帳を開いて、以下のコードを omikuji10.html として保存してブラウザで開いてみてください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>10連おみくじガチャ</title>
</head>
<body>
<h1>10連おみくじガチャ機</h1>
<button onclick="draw10()">10連ガチャを引く!</button>
<div id="display" style="margin-top:20px; font-size:18px; line-height:1.8;"></div>
<script>
let kuji = ["大吉 🌟", "中吉 ✨", "小吉 🍀", "吉 🌿", "凶 ⚡"];
function draw10() {
let resultText = ""; // 結果をためておく箱
for (let i = 0; i < 10; i++) {
let randomIndex = Math.floor(Math.random() * kuji.length);
let picked = kuji[randomIndex];
resultText += (i + 1) + "回目: " + picked + "<br>";
}
// 画面に10回分の結果を一気に表示!
document.getElementById("display").innerHTML = resultText;
}
</script>
</body>
</html>
ボタンを押してみてください!一瞬で画面に「1回目:大吉」「2回目:小吉」……と10回分の結果がズラッと並んで表示されるはずです!
第4回のまとめ
- 条件分岐(
if):「もし〜なら」で結果ごとに違うメッセージを出す。 - ループ(
for):パソコンの得意技!何回もの繰り返しを一瞬で片付ける。 - この2つを覚えたら、ゲーム作りの基礎はほぼマスター!
いよいよ次回は最終回!画面のデザインをオシャレに整えて、文字の入れ替えや演出をつけた『本格オリジナルおみくじガチャ』を完成させます!
