-
03/16 List<T> 를사용한 인벤토리 제작 연습C#/수업내용 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("아이템이 존재하지 않습니다."); } } } }
'C# > 수업내용' 카테고리의 다른 글
03/17 배열 변수 선언, 인스턴스 생성, 값 할당, 출력 복습 (0) 2021.03.17 03/16 수업내용 메모 (0) 2021.03.17 03/16 제너릭, List<T>, 컬렉션 연습 (0) 2021.03.16 03/16 배열 선언, 생성, 요소 삭제 연습 (0) 2021.03.16 03/15 수업내용 메모 (0) 2021.03.15