🎮 はじめに:コンピュータに「ルール」を教えよう
こんにちは、「ぷろぐらの森」です🌲
ゲームをプレイしていて、HP(体力)が0になった瞬間を想像してください。
画面には「GAME OVER」と表示され、音楽が止まり、操作ができなくなりますよね。
人間なら「HPがなくなったら終わりだ」と感覚で分かりますが、コンピュータは違います。
「もし、HPが0以下になったら、ゲームを終了しろ」と、明確に命令しない限り、
HPがマイナスになってもゾンビのように動き続けてしまいます。
この「もし〜なら、〜する」という命令こそが、今回学ぶif文(イフぶん)こと「条件分岐」です。
これが書ければ、ゲームに「ルール」を与えることができるようになりますよ!
1. if文の基本:「もしも」の話
PHP(プログラミング)における条件分岐の書き方は、英語の文法とほぼ同じです。
📝 基本構文
##PHP##
if (条件) {
// 条件が合っていたら実行すること
}
RPGの「ゲームオーバー判定」を実際にコードで書いてみましょう。
##PHP##
<?php
$hp = 0; // 現在のHP
// もし、HPが0以下なら
if ($hp <= 0) {
echo "GAME OVER ...";
}
?>
解説:
if (...): 「もし〜なら」の合図。$hp <= 0: 条件式です。「HPが0以下(0も含む)」という意味。{ ... }: 条件が満たされた時だけ実行されるブロック。「波カッコ」と言います。
もし $hp = 10; に書き換えて実行すると、条件に当てはまらないので何も表示されません。これが「分岐」です。
2. else文:「そうでなければ」の話
「HPが0になったらゲームオーバー」はできましたが、「まだ生きている時」も何か表示したいですよね。
そんな時は else(エルス)を使います。
📝 elseの書き方
##PHP##
$hp = 50;
if ($hp <= 0) {
echo "GAME OVER ...";
} else {
// 条件に当てはまらなかった場合(生きている)
echo "勇者はまだ戦える!";
}
これで、HPがどんな数値であっても、必ずどちらかのメッセージが表示されるようになりました。
3. elseif文:「ピンチ」の状態を作ろう
ゲームには「元気な状態」と「死んだ状態」の間に、「HPが赤色になる(ピンチ)」状態がありますよね。
条件を3つ以上に分けたい時は、 elseif(エルスイフ)を使います。
判定したい順番:
- 死んでいるか? (
$hp <= 0) - ピンチか? (
$hp <= 10) - それ以外(元気)
##PHP##
$hp = 8; // 残りわずか!
if ($hp <= 0) {
echo "返事がない。ただのしかばねのようだ。";
} elseif ($hp <= 10) {
echo "勇者はふらふらだ!(HPが赤色)";
} else {
echo "勇者は元気いっぱいだ!";
}
⚠️ 注意点:プログラムは上から順番にチェックします。もし逆に書いてしまうと…
##PHP##
// ❌ 悪い例
if ($hp <= 10) {
echo "ピンチ!"; // HPが0の時も「10以下」なので、ここで反応してしまう!
} elseif ($hp <= 0) {
echo "死亡"; // ここには永遠にたどり着かない
}
条件分岐は「より厳しい条件(この場合は死亡)」から先に書くのが鉄則です。
4. 必須知識!「比較演算子」リスト
if文の () の中で使う記号を「比較演算子」と言います。
ゲーム開発でよく使うものを表にまとめました。これだけ覚えればOKです!
| 記号 | 意味 | ゲームでの例 |
== | 等しい | if ($key == "A") Aボタンが押されたら |
!= | 等しくない | if ($scene != "title") タイトル画面じゃなければ |
> | より大きい | if ($score > 1000) スコアが1000を超えたら |
< | より小さい | if ($time < 10) 残り時間が10秒を切ったら |
>= | 以上 | if ($level >= 5) レベル5以上で装備可能 |
<= | 以下 | if ($hp <= 0) HPが0以下なら死亡 |
🚨 初心者が一番ハマる罠
=(イコール1つ)は「代入」です。 ==(イコール2つ)が「比較」です。
if ($hp = 0)← ❌ HPに0を代入してしまう(バグの元!)if ($hp == 0)← ⭕️ HPが0かどうかチェックする
5. まとめ:if文でゲームに緊張感を与えよう
今回は、プログラミングで最も重要な構文の一つ「if文(条件分岐)」を解説しました。
- if: 特定の条件の時だけ実行する。
- else: そうでない時の処理。
- elseif: 複数の条件を順番にチェックする。
- 比較演算子:
==や<=を使って大小や一致を判定する。
このif文を使えば、「鍵を持っていればドアが開く」「ボスを倒したらエンディングへ」といった、ゲームらしい動きがすべて作れるようになります。
次回は、今回学んだif文と配列を組み合わせて「敵を倒すまで攻撃を繰り返す(ループ処理)」に挑戦してみましょう!

コメント