C#/수업 과제
배열을 활용한 인벤토리 구현
HSH12345
2023. 1. 6. 21:03
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _230106
{
class App
{
public App()
{
Inventory inventory = new Inventory();
inventory.AddItem(new Item("장검"));
inventory.AddItem(new Item("단검"));
inventory.AddItem(new Item("활"));
inventory.AddItem(new Item("도끼"));
inventory.AddItem(new Item("지팡이"));
inventory.AddItem(new Item("지팡이"));
inventory.AddItem(new Item("도끼"));
inventory.PrintItems();
Console.WriteLine();
inventory.FindItemByName("장검");
inventory.FindItemByName("메이스");
inventory.FindItemByName("활");
inventory.FindItemByName("망치");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _230106
{
class Inventory
{
public Item[] items;
int index;
public Inventory()
{
this.items = new Item[5];
}
public void AddItem(Item item)
{
if (index >= items.Length)
{
Console.WriteLine("인벤토리가 가득 찼습니다.");
}
else
{
this.items[index] = item;
index++;
Console.WriteLine("인벤토리에 추가하였습니다. ({0})", item.name);
}
}
public void PrintItems() //for문으로 items들의 요소 출력
{
Console.WriteLine("\n아이템 목록\n");
for (int i = 0; i < items.Length; i++)
{
if (items[i] != null)
{
Console.WriteLine(items[i].name);
}
}
}
public Item FindItemByName(string name) //문자열 이름으로 아이템을 찾기
{
Item finditem = null;
for (int i = 0; i < items.Length; i++)
{
if (items[i].name == name)
{
finditem = items[i];
Console.WriteLine("{0}을 보유하고 있습니다", name);
break;
}
else if (i == items.Length - 1 && items[i].name != name)
{
Console.WriteLine("{0}을 보유하고 있지않습니다", name);
}
}
return finditem;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _230106
{
class Item
{
public string name;
public Item(string name)
{
this.name = name;
}
}
}
Inventory 클래스의 FindItemByName 클래스에서 Item(참조)형식의 값을 왜 반환해야하는지 궁금