敵のクラスを作ってみる

次の条件の敵のクラスを作成してみましょう

要件

ステータス情報を取得できるようにします
ステータス情報は、待機中、攻撃中、防御中、死亡とします
それぞれは、列挙型の型を持ちます
今生きているかどうかを調べるIsAliveプロパティを持ちます

サンプルコード

public class Enemy
{
    public enum Status
    {
        Standby,
        Attacking,
        Defending,
        Dead
    }

    public Status CurrentStatus { get; set; }
    public int Health { get; set; }
    public int Attack { get; set; }
    public int Defense { get; set; }

    public bool IsAlive
    {
        get
        {
            return Health > 0;
        }
    }

    public Enemy(int health, int attack, int defense)
    {
        Health = health;
        Attack = attack;
        Defense = defense;
        CurrentStatus = Status.Standby;
    }
}

上記のコードは、「Enemy」という名前のクラスを定義しています。

このクラスには、次のメンバー変数が含まれています。

  • CurrentStatus:敵の現在の状態を表す列挙型の変数です。「Standby」、「Attacking」、「Defending」、「Dead」から選ぶことができます。
  • Health:敵の体力を表す整数型変数です。
  • Attack:敵の攻撃力を表す整数型変数です。
  • Defense:敵の防御力を表す整数型変数です。

また、このクラスには「IsAlive」という名前のプロパティも含まれています。このプロパティは、敵が生きているかどうかを判定するためのものです。生きている場合は true、死んでいる場合は false を返します。

このクラスには、引数に「Health」、「Attack」、「Defense」を取るコンストラクタも定義されています。このコンストラクタは、変数を初期化するために使われます。また、初期状態として「Standby」を設定しています。

使い方のサンプル

基本

コード

Enemy enemy = new Enemy(100, 20, 10);

// 敵の状態を表示
Console.WriteLine(enemy.CurrentStatus);

// 敵の体力を表示
Console.WriteLine(enemy.Health);

// 敵が生きているか判定
if (enemy.IsAlive)
{
    Console.WriteLine("Enemy is alive");
}
else
{
    Console.WriteLine("Enemy is dead");
}

このサンプルでは、敵を表す「Enemy」クラスのインスタンスを作ります。体力が100、攻撃力が20、防御力が10という設定です。

その後、敵の状態、体力、生存状況を表示することができます。

実行結果

Standby
100
Enemy is alive

状態を変更するサンプル

コード

Enemy enemy = new Enemy(100, 20, 10);

// 敵の状態を表示
Console.WriteLine(enemy.CurrentStatus);

// 敵の状態を変更
enemy.CurrentStatus = Enemy.Status.Attacking;

// 敵の状態を表示
Console.WriteLine(enemy.CurrentStatus);

実行結果

Standby
Attacking

このサンプルでは、まず「Enemy」クラスのインスタンスを作ります。その後、敵の状態を「Standby」から「Attacking」に変更し、変更された状態を表示します。