ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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("아이템이 존재하지 않습니다.");
                }            
            }
        }
    }
    
Designed by Tistory.