C#/수업내용
03/16 List<T> 를사용한 인벤토리 제작 연습
박준희
2021. 3. 16. 16:23

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Main");
new App();
}
}
}
App.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class App
{
public App()
{
Console.WriteLine("App");
//List를 사용해서 인벤토리 제작
Inventory inventory = new Inventory();
//아이템 삽입
Console.WriteLine("\n*****************************************************");
Item item1 = new Item("물약", eRareGrade.Common);
Item item2 = new Item("장검", eRareGrade.Common);
inventory.InsertItem(item1);
inventory.InsertItem(item2);
int idx = 1;
foreach (Item item in inventory.items)
{
Console.WriteLine("{0}. {1} {2}",idx, item.rareGrade, item.name);
idx++;
}
//아이템 검색
Console.WriteLine("\n*****************************************************");
inventory.SearchItem(item1.name);
//아이템 삭제
Console.WriteLine("\n*****************************************************");
inventory.DeleteItem("장검");
idx = 1;
foreach (Item item in inventory.items)
{
Console.WriteLine("{0}. {1} {2}", idx, item.rareGrade, item.name);
idx++;
}
//아이템 수정
Console.WriteLine("\n*****************************************************");
Item item3 = new Item("알약", eRareGrade.Rare);
inventory.ModifyItem("물약", item3);
idx = 1;
foreach (Item item in inventory.items)
{
Console.WriteLine("{0}. {1} {2}", idx, item.rareGrade, item.name);
idx++;
}
}
}
}
Item.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public enum eRareGrade
{
Common,
Uncommon,
Rare,
Unique,
Legendary,
Epic
}
public class Item
{
public string name;
public eRareGrade rareGrade;
public Item()
{
}
public Item(string name, eRareGrade rareGrade)
{
this.name = name;
this.rareGrade = rareGrade;
}
}
}
Inventory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Inventory
{
public List<Item> items;
public Inventory()
{
items = new List<Item>();
}
public void InsertItem(Item item)
{
items.Add(item);
Console.WriteLine("{0} 아이템을 삽입했습니다.", item.name);
}
public void SearchItem(string name)
{
bool isExist = false;
foreach(Item item in items)
{
if(item.name == name)
{
Console.WriteLine("{0} 아이템이 존재합니다.", name);
isExist = true;
break;
}
}
if(!isExist)
{
Console.WriteLine("아이템이 존재하지 않습니다.");
}
}
public void DeleteItem(string name)
{
bool plug = false;
for(int i = 0; i < items.Count; i++)
{
if(items[i].name == name)
{
items.RemoveAt(i);
Console.WriteLine("{0} 아이템를 삭제했습니다.", name);
plug = true;
break;
}
}
if(!plug)
{
Console.WriteLine("아이템이 존재하지 않습니다.");
}
}
public void ModifyItem(string name, Item item2)
{
bool plug = false;
for (int i = 0; i < items.Count; i++)
{
if (items[i].name == name)
{
items[i] = item2;
Console.WriteLine("아이템을 수정했습니다.");
plug = true;
break;
}
}
if (!plug)
{
Console.WriteLine("아이템이 존재하지 않습니다.");
}
}
}
}