Inventory.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study04
{

    public class Inventory
    {
        private Item[] items;
        private int nextIndex;

        // 생성자
        public Inventory(int capacity)
        {
            this.items = new Item[capacity];
        }

        public void AddItem(Item item)
        {
            if (this.nextIndex > this.items.Length-1)
            {
                Console.WriteLine("공간이 부족합니다.");
            }
            else
            {
                this.items[this.nextIndex++] = item;
            }
        }

        public void Extend(int capacity)
        {

            int len = this.items.Length + capacity;
            Item[] temp = new Item[len];

            for (int i = 0; i < this.items.Length-1; i++) {
                temp[i] = this.items[i];
                
            }
            this.items = temp;
        }

        public void FindName()
        {
            for (int i = 0; i < this.items.Length; i++)
            {
                if (this.items[i] != null)
                {
                    Console.WriteLine(this.items[i].Name);
                }
            }
        }

        public Item GetItem(string itemName)
        {
            Item getItem = null;
            for (int i = 0; i < this.items.Length; i++)
            {
                if (this.items[i] != null)
                {
                    if (this.items[i].Name != itemName)
                    {
                        Console.WriteLine("{0} 아이템을 찾을 수 없습니다.", itemName);
                    }
                    else
                    {
                        getItem = this.items[i];
                        Console.WriteLine("{0}을 사용합니다.", getItem.Name);
                        break;
                    }
                }

            }
            return getItem;
        }
    }
}

 

Item.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study04
{
    public class App
    {
        Inventory inven = null;
        Item items = null;
        // 생성자
        public App()
        {
            Console.Write("인벤토리의 최대 수량을 입력하세요.");
            string input = Console.ReadLine();
            int maxNum = Convert.ToInt32(input);

            inven = new Inventory(maxNum);
            Console.WriteLine(inven);

            while (true)
            {
                Console.WriteLine("숫자를 입력하세요.");
                Console.WriteLine("<1. 아이템 넣기, 2. 아이템 빼기, 3. 인벤토리 최대 수량 변경 4. 나가기>");
                string inputNum = Console.ReadLine();
                int num = Convert.ToInt32(inputNum);
                if (num == 1)
                {
                    Console.Write("아이템 이름을 입력하세요.: ");
                    string inputItem = Console.ReadLine();
                    this.items = new Item(inputItem);
                    inven.AddItem(this.items);
                }
                else if (num == 2)
                {
                    Console.Write("사용할 아이템 이름을 입력하세요.: ");
                    string inputItem = Console.ReadLine();
                    this.items = inven.GetItem(inputItem);
                }
                else if (num == 3)
                {
                    Console.WriteLine("추가할 수량을 입력하세요.: ");
                    string inputItem = Console.ReadLine();
                    int number = Convert.ToInt32(inputItem);
                    inven.Extend(number);
                    Console.WriteLine("인벤토리 총 수량: {0}", maxNum + number);
                }
                else if (num == 4)
                {
                    Console.WriteLine("인벤토리를 나갑니다.");
                    break;
                }
                else
                {
                    Console.WriteLine("잘못된 입력입니다.");
                }
            }
        } 
    }
}

App.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study04
{
    public class App
    {
        Inventory inven = null;
        Item items = null;

        // 생성자
        public App()
        {
            Console.Write("인벤토리의 최대 수량을 입력하세요 -> ");
            string input = Console.ReadLine();
            int maxNum = Convert.ToInt32(input);

            inven = new Inventory(maxNum);

            while (true)
            {
                Console.WriteLine("\n");
                Console.WriteLine("숫자를 입력하세요");
                Console.WriteLine("<1. 아이템 넣기, 2. 아이템 빼기, 3. 인벤토리 최대 수량 변경 4. 나가기>");
                string inputNum = Console.ReadLine();
                int num = Convert.ToInt32(inputNum);
                if (num == 1)
                {
                    Console.Write("아이템 이름을 입력하세요 -> ");
                    string inputItem = Console.ReadLine();
                    this.items = new Item(inputItem);
                    inven.AddItem(this.items);
                    
                }
                else if (num == 2)
                {
                    Console.Write("사용할 아이템 이름을 입력하세요 -> ");
                    string inputItem = Console.ReadLine();
                    this.items = inven.GetItem(inputItem);
                }
                else if (num == 3)
                {
                    Console.WriteLine("추가할 수량을 입력하세요 -> ");
                    string inputItem = Console.ReadLine();
                    int number = Convert.ToInt32(inputItem);
                    inven.Extend(number);
                    Console.WriteLine("인벤토리 총 수량: {0}", maxNum + number);
                }
                else if (num == 4)
                {
                    Console.WriteLine("인벤토리를 나갑니다.");
                    break;
                }
                else
                {
                    Console.WriteLine("잘못된 입력입니다.");
                }
            }
        } 
    }
}

+ Recent posts