C#/수업 내용

[C#] 2021-08-30 배열 연습

JSH1 2021. 8. 31. 01:00
class App
{
    //생성자
    public App()
    {
        Inventory inven = new Inventory(5);

        Item item1 = new Item("단검");
        Item item2 = new Item("장검");
        Item item3 = new Item("대검");
        Item item4 = new Item("양손도끼");
        Item item5 = new Item("장창");
        Item item6 = new Item("방패");
        Item item7 = new Item("활");
        Console.WriteLine();

        inven.AddItem(item1);
        inven.AddItem(item2);
        inven.AddItem(item3);
        inven.AddItem(item4);
        inven.AddItem(item5);
        inven.AddItem(item6);
        inven.AddItem(item7);

        Console.WriteLine();
        inven.GetItem("대검");
        inven.GetItem("대검");
        inven.GetItem("장창");
        inven.GetItem("장창");
    }
}
class Item
{
    public string name;

    public Item(string item)
    {
        this.name = item;
        Console.WriteLine("생성된 아이템: {0}", this.name);
    }
}
class Inventory
{
    private Item[] items;

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

    public void AddItem(Item item)
    {
        for (int i = 0; i < items.Length; i++)
        {
            if (items[i] == null)
            {
                this.items[i] = item;
                Console.WriteLine("추가된 아이템: {0}", this.items[i].name);
                break;
            }

            if (i == items.Length - 1)
            {
                Console.WriteLine("빈 공간이 없습니다.");
            }
        }

    }

    public void GetItem(string name)
    {
        for (int i = 0; i < this.items.Length; i++)
        {
            if (this.items[i] != null && this.items[i].name == name)
            {
                Console.WriteLine("{0}을 찾았다.", this.items[i].name);
                this.items[i] = null;
                break;
            }

            if (i == items.Length - 1)
            {
                Console.WriteLine("가방에 {0}이 없습니다.", name);
            }
        }
    }
}


 

'C# > 수업 내용' 카테고리의 다른 글

[C#] 2021-08-31 1차원 배열 2048  (0) 2021.08.31
[C#] 2021-08-31 1차원 배열 캐릭터 이동  (0) 2021.08.31
[C#] abstract, interface  (0) 2021.08.31
[C#] 읽기/쓰기 get, set  (0) 2021.08.30
[C#] 구조체 struct  (0) 2021.08.30