본문 바로가기

자료구조

배열연습 인벤토리만들기(차례대로넣기)

App 클래스

using System;

class App
{
    //생성자
    public App()
    {
        Inventory inven = new Inventory(5);

        Item item0 = new Item("장검");
        inven.AddItem(item0);

        Item item1 = new Item("단검");
        inven.AddItem(item1);

        Item item2 = new Item("활");
        inven.AddItem(item2);

        Item item3 = new Item("도끼");
        inven.AddItem(item3);

        Item item4 = new Item("창");
        inven.AddItem(item4);

        Console.WriteLine("0번째칸: {0}", inven.items[0].name);
        Console.WriteLine("1번째칸: {0}", inven.items[1].name);
        Console.WriteLine("2번째칸: {0}", inven.items[2].name);
        Console.WriteLine("3번째칸: {0}", inven.items[3].name);
        Console.WriteLine("4번째칸: {0}", inven.items[4].name);

        inven.GetItem("장검");
    }
}

인벤토리

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

class Inventory
{
    int i = 0;
    //Item 형식의 값이 들어갈 배열 변수 정의
    public Item[] items;

    //생성자
    public Inventory(int capacity)  //허용치
    {
        //배열 인스턴스화
        this.items = new Item[capacity];
        Console.WriteLine("Inventory가 생성되었습니다.");
    }

    //아이템을 추가하는 기능
    //매개변수로 아이템 인스턴스를 받아와
    //배열에 추가
    public void AddItem(Item item)
    {
        //배열에 추가
        //인덱스 0 ~ 4 사이
        if (this.items[i] != null)
        {
            ++i;
        }
        this.items[i] = item;
    }

    //아이템을 가져오는 기능
    //매개변수로 받아온 문자열(이름)을
    //배열에서 검색해서 있따면 꺼내서 반환함
    public void GetItem(string name)
    {
        //배열에 name이 있는지 검색
        //배열의 요소들은 Item인스턴스
        //                  name

        for (int i = 0; i < this.items.Length; i++)
        {
            Item item = this.items[i];
            if (item != null)
            {
                Console.WriteLine(item.name);

                //찾았다
                if (item.name == name)
                {
                    Console.WriteLine("찾았다");
                    break;
                }
            }
            
        }
    }
}