> 바닥 수량보다 많이 입력시, 바닥 최대수량 획득 후 바닥 아이템 목록에서 제거

 

> 수량 반영

 


> App 생성자

더보기
List<Item> dropItemList;
Inventory inventory;
public App()
{
ListApp3();
}

 

> ListApp3()

더보기
public void ListApp3()
{
this.dropItemList = new List<Item>();
this.dropItemList.Add(new Item("장검", 10));
this.dropItemList.Add(new Item("단검", 2));
this.dropItemList.Add(new Item("활", 5));
string dropItemName;
int dropItemAmount;
this.inventory = new Inventory();
while (true)
{
PrintDropList(dropItemList);
Console.WriteLine();
Console.Write("아이템을 획득하려면 명령어를 입력해주세요: ");
var input = Console.ReadLine();
string[] cInput = input.Split(' ');
dropItemName = cInput[0];
dropItemAmount = int.Parse(cInput[1]);
GetItemList(dropItemName, dropItemAmount);
this.inventory.PrintAllItems();
}
}

 

> PrintDropList()

더보기
public void PrintDropList(List<Item> list)
{
Console.WriteLine("■■■■■■■■■■■■■■■■■■■■■■■■■■■■");
Console.WriteLine("길바닥에 떨어져있는 아이템");
foreach (var item in list)
{
if (item != null)
{
Console.WriteLine($"{item.name}, {item.amount}");
}
}
Console.WriteLine("■■■■■■■■■■■■■■■■■■■■■■■■■■■■");
Console.WriteLine();
}

 

> GetItemList()

더보기
public void GetItemList(string dropItemName, int dropItemAmount)
{
var findDropitem = this.dropItemList.Find(v => v.name == dropItemName);
if (findDropitem == null)
{
Console.WriteLine(">입력한 아이템은 획득 할 수 없습니다.");
Console.WriteLine();
return;
}
// 바닥에 있는 수량보다 많이 획득 할 경우
if (findDropitem.amount <= dropItemAmount)
{
Console.WriteLine($"최대 {findDropitem.amount}개 를 획득했습니다.");
this.inventory.Add(new Item(dropItemName, findDropitem.amount));
this.dropItemList.Remove(findDropitem);
}
else
{
this.inventory.Add(new Item(dropItemName, dropItemAmount));
findDropitem.amount -= dropItemAmount;
}
}

 

+ Recent posts