728x90
(연습내용 - 출력값)
<인벤토리 내부>
장검
단검
활
[ ]
[ ]
-------------------------
장검을 꺼냈습니다.
-------------------------
[ ]
단검
활
[ ]
[ ]
-------------------------
<Item 클래스>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class Item
{
public string name;
//생성자 메서드
public Item(string name)
{
this.name = name;
}
}
}
<Inventory 클래스>
using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class Inventory
{
private Item[] items;
private int capacity;
private int index;
//생성자 메서드
public Inventory(int capacity)
{
this.capacity = capacity;
//아이템을 그룹화, 관리
items = new Item[this.capacity];
}
//아이템 추가
public void AddItem(Item item)
{
int lastIndex = this.capacity - 1;
if(this.index > lastIndex)
{
Console.WriteLine("공간이 부족합니다.");
return;
}
//배열의 index 요소에 값 넣기
this.items[index] = item;
index++;
//Console.WriteLine("=> {0}", item.name);
//Console.WriteLine("{0},{1}", this.index, lastIndex);
}
//모든 아이템 출력
public void PrintAllItems()
{
Console.WriteLine();
for(int i = 0; i < this.items.Length; i++)
{
Item item = this.items[i];
if (item == null)
{
Console.WriteLine("[ ]");
}
else
{
Console.WriteLine(item.name);
}
}
}
//아이템 꺼내기
public Item GetItemByName(string searchItemName)
{
Console.WriteLine("searchItemName: {0}",searchItemName);
Item foundItem = null;
for(int i = 0; i < this.items.Length; i++)
{
Item item = this.items[i];
if(item != null)
{
Console.WriteLine("item name: {0}", item.name);
if(item.name == searchItemName)
{
this.items[i] = null;
foundItem = item;
break;
}
}
}
return foundItem;
}
}
}
<App 클래스>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class App
{
//생성자 메서드
public App()
{
Inventory inven = new Inventory(5);
inven.AddItem(new Item("장검"));
inven.AddItem(new Item("단검"));
inven.AddItem(new Item("활"));
inven.PrintAllItems();
string searchItemName = "장검";
Item item = inven.GetItemByName(searchItemName);
if(item != null)
{
Console.WriteLine("{0}을 꺼냈습니다.", item.name);
}
else
{
Console.WriteLine("{0}을 찾지 못했습니다.",searchItemName);
}
inven.PrintAllItems();
}
}
}
Q) Index 사용법 및 아이템 꺼내기(GetItemByName)부분이 어렵습니다...!ㅜ
'KDT > C# 프로그래밍' 카테고리의 다른 글
23/07/25 배열 복습2 (0) | 2023.07.25 |
---|---|
23/07/25 배열 복습 (0) | 2023.07.25 |
23/07/24 배열 기초 복습 (집에서) (0) | 2023.07.24 |
23/07/24 인벤토리 (0) | 2023.07.24 |
23/07/24 배열 연습1~3 (0) | 2023.07.24 |