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#の基礎を活かして、自分だけのオリジナルゲームに挑戦してみましょう!
ディスカッション
コメント一覧
まだ、コメントがありません