C#初学者向け技術資料:配列を使ったゲームサンプル

目的

この資料では、「配列」を学習するために、敵の攻撃ダメージを配列で管理し、それをランダムに選ぶ仕組みを取り入れたゲームサンプルを解説します。これにより、複数のデータを効率的に扱う方法を理解できます。


サンプルコード:敵の攻撃ダメージを配列で管理

using System;

class Program
{
    static void Main(string[] args)
    {
        int health = 100; // プレイヤーの体力
        int[] enemyAttacks = { 10, 20, 30, 40 }; // 敵の攻撃ダメージの配列
        Random random = new Random(); // ランダムな値を生成するオブジェクト

        Console.WriteLine("【配列学習ゲーム】");
        Console.WriteLine("プレイヤーの体力は 100 です。");
        Console.WriteLine("敵がランダムな攻撃をしてきます!");

        while (health > 0)
        {
            // 敵の攻撃をランダムに選ぶ
            int attackIndex = random.Next(enemyAttacks.Length); // 配列のインデックスをランダムに選択
            int damage = enemyAttacks[attackIndex]; // ランダムな攻撃ダメージを取得

            health -= damage; // プレイヤーの体力を減らす
            Console.WriteLine($"敵の攻撃! {damage} のダメージを受けた!");

            if (health <= 0)
            {
                Console.WriteLine("やられました...");
                break;
            }

            Console.WriteLine($"残り体力: {health}");
        }

        Console.WriteLine("ゲームオーバー");
    }
}

コード解説

1. 配列の利用

int[] enemyAttacks = { 10, 20, 30, 40 };
  • 配列を使って、敵の攻撃ダメージの候補を管理。
  • { 10, 20, 30, 40 } は攻撃ダメージの値を格納。

2. ランダムに攻撃を選ぶ

Random random = new Random();
int attackIndex = random.Next(enemyAttacks.Length);
int damage = enemyAttacks[attackIndex];
  • Random クラスを使って、配列の中からランダムに攻撃ダメージを選択。
  • enemyAttacks.Length は配列の長さを取得。

3. 繰り返しと条件式

  • プレイヤーの体力が0以下になるまで、攻撃を繰り返す。
  • 条件式で体力が0以下になった場合、ゲーム終了。

実行結果例

【配列学習ゲーム】
プレイヤーの体力は 100 です。
敵がランダムな攻撃をしてきます!
敵の攻撃! 30 のダメージを受けた!
残り体力: 70
敵の攻撃! 10 のダメージを受けた!
残り体力: 60
敵の攻撃! 40 のダメージを受けた!
残り体力: 20
敵の攻撃! 30 のダメージを受けた!
やられました...
ゲームオーバー

学習のポイント

配列の基本

  • 配列は複数のデータをまとめて管理するためのデータ構造です。
  • 配列の各要素にはインデックス(0から始まる番号)でアクセスします。

応用のアイデア

  • 敵の攻撃ダメージをもっと増やしてみる。
  • 敵の種類を追加し、配列で管理する。
  • プレイヤーが回復できる回復量を配列で管理する。

改善例:プレイヤーの選択肢を追加

以下は、配列を使ってプレイヤーが回復する選択肢を追加した例です。

int[] recoveryOptions = { 10, 20, 30 }; // 回復量の選択肢

Console.WriteLine("回復する場合は 'R' を入力してください。それ以外は敵が攻撃します。");

while (health > 0)
{
    Console.Write("次の行動 (R: 回復, Enter: 敵の攻撃): ");
    string input = Console.ReadLine();

    if (input.ToUpper() == "R")
    {
        int recovery = recoveryOptions[random.Next(recoveryOptions.Length)];
        health += recovery;
        Console.WriteLine($"プレイヤーは {recovery} 回復した! 現在の体力: {health}");
    }
    else
    {
        int attackIndex = random.Next(enemyAttacks.Length);
        int damage = enemyAttacks[attackIndex];
        health -= damage;
        Console.WriteLine($"敵の攻撃! {damage} のダメージを受けた!");
    }

    if (health <= 0)
    {
        Console.WriteLine("やられました...");
        break;
    }
}

まとめ

  • 配列を使うことで、複数のデータを効率よく管理できる。
  • ランダムな要素を取り入れることで、ゲームに変化を持たせることができる。
  • 応用として、敵の種類やプレイヤーの選択肢を増やし、コードの拡張性を高めることが可能です。

C#の基礎を活かして、自分だけのオリジナルゲームに挑戦してみましょう!

C#,配列

Posted by hidepon