using System;
using System.Collections.Generic;
namespace ItemGuide
{
public class App
{
// 생성자
public App()
{
}
public void Run()
{
List<Weapon> weapons = WeaponCreate();
bool isOpen = false;
int num=0;
while (true)
{
Console.WriteLine("===============================");
Console.WriteLine("[Item Guide]");
foreach (WeaponType type in Enum.GetValues(typeof(WeaponType)))
{
Console.WriteLine($"{(int)type + 1}) {type}");
}
Console.WriteLine("===============================");
if (isOpen == false)
{
Console.Write("정보를 확인 할 아이템의 번호 입력 >> ");
num = Convert.ToInt32(Console.ReadLine());
isOpen = true;
Console.Clear();
continue;
}
if (num - 1 >= 0 && num - 1 < weapons.Count)
{
Weapon selectedWeapon = weapons[num - 1];
Console.WriteLine($"[{selectedWeapon.GetWeaponName()}]");
Console.WriteLine(selectedWeapon.GetWeaponType());
Console.WriteLine();
Console.WriteLine(selectedWeapon.GetDps());
Console.WriteLine("Damage Per Second");
Console.WriteLine();
Console.WriteLine($"{selectedWeapon.GetMinDamage()}" +
$"-" +
$"{selectedWeapon.GetMaxDamage()} " +
$"Damaged");
Console.WriteLine($"{selectedWeapon.GetAps()} Attacks per Seconds");
}
else
{
Console.WriteLine("잘못된 번호입니다.");
}
Console.WriteLine("===============================");
Console.Write("정보를 확인 할 아이템의 번호 입력 >> ");
num = Convert.ToInt32(Console.ReadLine());
Console.Clear();
}
}
public List<Weapon> WeaponCreate()
{
List<Weapon> weapons = new List<Weapon>();
weapons.Add(new Weapon("Hand Axe", WeaponType.Axe, 3.2f, 2, 3, 1.30f));
weapons.Add(new Weapon("Simple Dagger", WeaponType.Dagger, 6.0f, 2, 6, 1.50f));
weapons.Add(new Weapon("Club", WeaponType.Mace, 5.4f, 3, 6, 1.20f));
weapons.Add(new Weapon("Javelin", WeaponType.Spear, 7.2f, 5, 7, 1.20f));
weapons.Add(new Weapon("Sabre", WeaponType.Sword, 8.4f, 4, 8, 1.40f));
weapons.Add(new Weapon("Pike", WeaponType.Polearm, 15.2f, 15, 17, 0.95f));
weapons.Add(new Weapon("Battle Flail", WeaponType.Flail, 14.9f, 13, 13, 1.15f));
weapons.Add(new Weapon("Sharp Scythe", WeaponType.Scythe, 15.4f, 14, 14, 1.10f));
weapons.Add(new Weapon("Short Bow", WeaponType.Bow, 6.3f, 1, 8, 1.40f));
weapons.Add(new Weapon("Light Crossbow", WeaponType.Crossbow, 9.4f, 8, 9, 1.10f));
return weapons;
}
}
}
App.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ItemGuide
{
public enum WeaponType
{
Axe,
Dagger,
Mace,
Spear,
Sword,
Polearm,
Bow,
Crossbow,
Scythe,
Flail
}
public class Weapon
{
public string name;
private WeaponType type;
public float dps; // Damage per Seconds
public int minDamage;
public int maxDamage;
public float aps; // Attack per Seconds
// 생성자
//public Weapon() { }
public Weapon(string name, WeaponType type, float dps, int minDamage, int maxDamage, float aps)
{
this.name = name;
this.type = type;
this.dps = dps;
this.minDamage = minDamage;
this.maxDamage = maxDamage;
this.aps = aps;
}
public WeaponType GetWeaponType()
{
return this.type;
}
public string GetWeaponName()
{
return this.name;
}
public float GetDps()
{
return this.dps;
}
public int GetMinDamage()
{
return this.minDamage;
}
public int GetMaxDamage()
{
return this.maxDamage;
}
public float GetAps()
{
return this.aps;
}
}
}
Weapon.cs
반응형
'산대특 > 게임 알고리즘' 카테고리의 다른 글
디자인 패턴 (0) | 2024.02.05 |
---|---|
싱글톤 패턴 (0) | 2024.02.05 |
스레드(Thread)와 코루틴(Coroutine) (0) | 2024.02.03 |
프로세스(Process)와 스레드(Thread) (0) | 2024.02.02 |
자료구조 - [Tree] (0) | 2024.02.01 |