敵キャラを100体出現させろ!PHPのループ処理(for/foreach)で繰り返しをマスター

目次

🔄 はじめに:同じコードを100回書くの?

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

突然ですが、ゲーム画面に「スライム」を100体登場させたい時、あなたならどうプログラムを書きますか?

##PHP##
// ❌ 悪い例:手作業で書く
echo "スライムが現れた!<br>";
echo "スライムが現れた!<br>";
echo "スライムが現れた!<br>";
// ...あと97回書くの!?

これでは日が暮れてしまいますし、もし「スライム」を「ゴブリン」に変えたくなったら修正も地獄です。

プログラミングには、こうした単純作業を自動化する「ループ処理(繰り返し)」という魔法があります。
今回は、回数を指定して繰り返す「for文」と、アイテムリストなどを順番に処理する「foreach文」をマスターして、効率的なゲーム開発を目指しましょう!

1. for文:回数を決めて繰り返す

「敵を10体出す」「レベルが1上がるまで経験値を加算する」など、
繰り返す回数が決まっている時for 文を使います。

📝 基本構文

##PHP##
for (スタート値; 終わる条件; 増え方) {
    // 繰り返したい処理
}

実際に「スライムA」から「スライムE」までの5体を出現させてみましょう。

##PHP##
// $i は「カウンター」のような変数です
for ($i = 1; $i <= 5; $i++) {
    echo "スライム" . $i . "が現れた!<br>";
}

解説:

  1. $i = 1: カウンターを1にセット。
  2. $i <= 5: カウンターが5以下の間はずっと繰り返す。
  3. $i++: 1回終わるごとにカウンターを1増やす。

実行結果:

スライム1が現れた!

スライム2が現れた!

スライム5が現れた!

たった3行で5回(数字を変えれば100回でも!)表示できました。

2. foreach文:配列の中身を全部出す

ゲーム開発で for 文以上によく使うのが、この foreach(フォーイーチ)文です。

これは、前回の記事で作った「アイテム図鑑(配列)」のような、データのリストを順番に取り出すのに特化しています。

📝 基本構文

##PHP##
foreach ($配列 as $中身を入れる変数) {
    // 処理
}

実践:所持アイテムをリスト表示しよう

主人公が持っているアイテムの配列があるとします。

##PHP##
$items = ["回復薬", "毒消し草", "世界樹の葉"];

echo "<ul>"; // リスト開始

foreach ($items as $item) {
    echo "<li>" . $item . "を使う</li>";
}

echo "</ul>";

実行結果:

  • 回復薬を使う
  • 毒消し草を使う
  • 世界樹の葉を使う

for 文のように「何回繰り返すか」を数える必要はありません。

foreach は、「箱(配列)の中身がなくなるまで」自動で繰り返してくれます。
アイテムが1個でも100個でも、コードは書き換えなくてOKです!

3. 【応用】連想配列で「敵リスト」を表示

もう少しレベルアップして、「敵の名前」と「HP」が入った連想配列(データベースのような構造)をループで処理してみましょう。

##PHP##
// 敵データのリスト(多次元配列)
$enemies = [
    ["name" => "スライム", "hp" => 10],
    ["name" => "ドラゴン", "hp" => 500],
    ["name" => "魔王", "hp" => 9999]
];

foreach ($enemies as $enemy) {
    // $enemy の中には、1体ごとのデータが入る
    echo "敵名:" . $enemy["name"] . " (HP:" . $enemy["hp"] . ")<br>";
}

実行結果:

敵名:スライム (HP:10)

敵名:ドラゴン (HP:500)

敵名:魔王 (HP:9999)

Webサイトの「記事一覧」や「商品リスト」も、裏側ではこのようにデータベースからデータを取得し、foreach でHTMLに変換して表示しているのです。

4. まとめ:ループ処理で「自動化」しよう

今回は、プログラミングの効率を劇的に上げる2つのループ処理を解説しました。

構文特徴ゲームでの使い所
for回数を指定する経験値の計算、固定数の敵配置
foreach配列の全要素を使うアイテム一覧、ランキング表示、記事リスト

特に foreach は、PHPでWebアプリを作る上で一生使い続ける超重要テクニックです。

前回学んだ「配列」とセットで必ず覚えておきましょう!

次回は、これまで学んだ「配列」「if文」「ループ」を総動員して、
「簡単なバトルシミュレーター」を作ってみましょう!

お楽しみに!

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

この記事を書いた人

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

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

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

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

コメント

コメントする

目次