HPが0ならゲームオーバー!PHPのif文(条件分岐)でゲームのルールを作ろう

目次

🎮 はじめに:コンピュータに「ルール」を教えよう

こんにちは、「ぷろぐらの森」です🌲

ゲームをプレイしていて、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(エルスイフ)を使います。

判定したい順番:

  1. 死んでいるか? ($hp <= 0)
  2. ピンチか? ($hp <= 10)
  3. それ以外(元気)
##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文と配列を組み合わせて「敵を倒すまで攻撃を繰り返す(ループ処理)」に挑戦してみましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

神奈川県出身
どこにでもいる現役ゲーム会社サーバーエンジニア。大学ではひたすらゲーム!ゲーム!という人生を送ってました。

このブログは「ゲームを作ってみたい!」「プログラミングに関する知識をつけたい!」そんな皆さんの少しでもお役になれば嬉しいなと思い開設しました。

趣味
YouTube鑑賞、ストリートな格闘ゲーム、キャンプ

最近の出来事
・痔主になってしまいました....
・Google Cloud Professional Cloud Architect取得しました。

コメント

コメントする

目次