Присваивание массива - C#
Формулировка задачи:
Здравствуйте! Я новичок. Я пока учу переменные и массивы. Я люблю компьютерные игры и благодаря им я пытаюсь воссоздать некое подобие игры в коде C#. Начал с самого простого юнита его здоровья и урона. Вначале у меня получилось создать здоровье и урон. А потом мне понадобилось сделать так, чтобы юниты могли создаваться с уже готовыми характеристиками. Подскажите пожалуйста, как можно написать этот код по другому - более удобно чтоли:
Random random = new Random(); const int baseIndex = 0; const int limitUnits = 10000000; int count = 0; int a = 0; // Счётчик int[] unit = new int[3]; // Количество характеристик у юнита. int[] health = new int[limitUnits]; // Индекс 0 отвечает за индекс этой характеристики у юнита. Индекс 1 отвечает за значение этой характеристики у юнита. int[] damage = new int[limitUnits]; int[] unitsCount = new int[limitUnits]; Console.WriteLine("=========="); do { count++; unitsCount[baseIndex] = 0; unitsCount[count] = count; health[baseIndex] = 1; // Отвечает за индекс характеристики у юнита. health[count] = random.Next(2, 11) * 100; // Значение характеристики юнита. damage[baseIndex] = 2; damage[count] = random.Next(1, 11) * 10 + 100; unit[unitsCount[baseIndex]] = unitsCount[count]; unit[health[baseIndex]] = health[count]; // Присваивание значения характеристики юнита. unit[damage[baseIndex]] = damage[count]; Console.WriteLine(); Console.WriteLine("Номер юнита = {0}", unit[unitsCount[baseIndex]]); Console.WriteLine("Здоровье юнита {0} = {1}", unit[unitsCount[baseIndex]], unit[health[baseIndex]]); Console.WriteLine("Урон юнита {0} = {1}", unit[unitsCount[baseIndex]], unit[damage[baseIndex]]); Console.WriteLine(); Console.WriteLine("=========="); a++; } while (Console.ReadKey().Key == ConsoleKey.Enter && a < unitsCount.Length - 1); Console.WriteLine("Юниты закончились!"); Console.ReadKey();
Решение задачи: «Присваивание массива»
textual
Листинг программы
class MyUnit { private String name; // Закрытое свойство имя юнита (другой юнит и другие классы не могут // изменять его напрямую) public String Name // Акцессор - чтобы контролировать все обращения к свойству { set{name = value;} get{return name;} } private int health; // Закрытое свойство здоровье public int Health // Акцессор - чтобы контролировать все обращения к свойству { set { health = value; } get { return health; } } private int attackPower; // Закрытое свойство сила атаки public int AttackPower // Акцессор - чтобы контролировать все обращения к свойству { set { attackPower = value; } get { return attackPower; } } private bool isDeath; // Закрытое свойство признак смерти public bool IsDeath // Акцессор - чтобы контролировать все обращения к свойству { set { isDeath = value; } get { return isDeath; } } // Конструктор класса вызывается один раз для каждого экземпляра при создании нового юнита // с одним обязательным аргументом - Name и двумя аргументами по умолчанию // если при создании нового юнита их не указывать то они будут равны 100 и 5 соответственно. public MyUnit(String Name, int Health = 100, int AttackPower = 5) { this.Name = Name; this.Health = Health; this.AttackPower = AttackPower; this.IsDeath = false; Console.Write("Появился юнит " + Name + " его здоровье: " + Health +" единиц а сила удара: " + AttackPower + " единиц\r\n"); } // Открытый метод класса - нанести удар по цели которая должна принадлежать к классу MyUnit public void Hit(MyUnit Target) { if (!Target.IsDeath) { if (Health > 0) { Console.Write("Юнит " + Name + " наносит удар по юниту " + Target.Name + "\r\n"); // Здесь вызывается метод принятого экземпляра, а аргументом является свойство // этого экземпляра (this) Target.MakeDamage(this.AttackPower); //this можно не писать это для наглядности } else { Console.Write("Юнит " + Name + " не может наносить удары потому чо он погиб.\r\n"); } } } // Открытый метод класса - получить урон public void MakeDamage(int DamagePower) { if (Health > 0) { if (DamagePower >= Health) { Health = 0; IsDeath = false; Console.Write("Юнит " + Name + " получает смертельный урон.\r\n"); } else { Health = Health - DamagePower; Console.Write("Юнит " + Name + " получает урон " + DamagePower.ToString() + " единиц.\r\n"); Console.Write("Юнит " + Name + " имеет " + Health + " единиц здоровья.\r\n"); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д