App.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;

namespace HomeWork01
{
    public class App
    {

        public App()
        {
            Console.WriteLine("2020-10-05\n");

            var inventory = new Inventory(3);

            var item1 = new Item(111, "초보자용 장검");
            var item2 = new Item(112, "초보자용 단검");
            var item3 = new Item(113, "초보자용 갑옷");
            var item4 = new Item(114, "초보자용 활");


            inventory.AddItem(item1);
            inventory.AddItem(item2);
            inventory.AddItem(item3);
            inventory.AddItem(item4);

            inventory.FindItem(113);
            inventory.FindItem(115);

            var hasItemName = "초보자용 장검";
            var hasItem = inventory.HasItem(hasItemName);

            Console.WriteLine("{0}아이템 소지여부 : {1}개", hasItemName, hasItem);

            Console.WriteLine("인벤토리 아이템 수 : {0}개", inventory.ItemCount());
            
        }
    }
}

Item.cs

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

namespace Study08
{
    public class Item
    {
        public int itemId;
        public string itemName; 

        public Item(int itemId, string itemName)
        {
            this.itemId = itemId;
            this.itemName = itemName;
        }
    }
}

Inventory.cs

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace HomeWork01
{
    public class Inventory
    {
        public Item[] items;
        public int inventorySize;
        public int itemIndex;

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

        public void AddItem(Item item)
        {
            if (itemIndex > inventorySize - 1)
            {
                Console.WriteLine("인벤토리가 가득 찼습니다.");
                return;
            }
            this.items[itemIndex] = item;
            itemIndex++;
            Console.WriteLine("아이템이 추가되었습니다. (ID : {0}, Name : {1})", item.itemId, item.itemName);
        }

        public Item FindItem(int itemId)
        {
            Item foundItem = null;
            foreach (Item item in this.items)
            {
                if (itemId == item.itemId)
                {
                    foundItem = item;
                    Console.WriteLine("해당 아이템을 찾았습니다. (ID : {0}, Name : {1})", item.itemId, item.itemName);
                    break;
                }
            }
            return foundItem;
        }

        public bool HasItem(string itemName)
        {
            Item foundItem = null;
            foreach(Item item in this.items)
            {
                if(itemName == item.itemName)
                {
                    foundItem = item;
                    break;
                }
            }
            if (foundItem != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        public int ItemCount()
        {
            return this.itemIndex;
        }
    }
}

※ 아이템을 찾는 함수 FindItem()에서 아이템을 찾지 못했을 때의 구문출력 미흡

※ foreach문 미숙

'C# > 과제' 카테고리의 다른 글

2020.10.14 직렬화 & 역직렬화  (0) 2020.10.14
2020.10.06 과제  (0) 2020.10.06
2020.09.29 과제  (0) 2020.10.03
2020.09.28 과제  (0) 2020.09.28
2020.09.25 주말과제  (0) 2020.09.25

+ Recent posts