using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study04
{
public class Inventory
{
Item[] inven;
int position = 0;
public Inventory(int a)
{
this.inven = new Item[a];
Console.WriteLine("{0}칸 인벤토리 생성", a);
}
public Item GetItem(string name)
{
for (int i = 0; i < this.inven.Length; i++)
{
if (this.inven[i].Name == name)
{
Console.WriteLine("아이템을 빼냈습니다.");
if (this.inven[i].Count > 1)
{
this.inven[i].Count--;
return new Item(name);
}
else
{
this.position--;
this.inven[i] = null;
for (; i < inven.Length - 1; i++)
{
inven[i] = inven[i + 1];
inven[i + 1] = null;
}
return new Item(name);
}
}
}
Console.WriteLine("그런 아이템은 없습니다.");
return null;
}
public void PutItem(Item item)
{
for(int i = 0; i < inven.Length; i++)
{
if ((this.inven[i] != null)&&this.inven[i].Name == item.Name)
{
this.inven[i].Count++;
return;
}
}
if (position >= inven.Length)
{
Console.WriteLine("가방이 가득 찼습니다.");
return;
}
this.inven[position] = item;
this.inven[position].Count++;
this.position++;
}
public void Print()
{
int a = 0;
while (this.inven[a] != null)
{
Console.WriteLine("{0} x {1}", this.inven[a].Name, this.inven[a].Count);
a++;
if(a == this.inven.Length)
{
break;
}
}
}
public void Expansion(int a)
{
Item[] temp = new Item[this.inven.Length + a];
int i = 0;
while (this.inven[i] != null)
{
temp[i] = inven[i];
i++;
if (i == this.inven.Length)
{
break;
}
}
this.inven = temp;
}
}
}
인벤토리 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study04
{
public class Item
{
private string name;
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public int Count
{
get; set;
}
public Item(string name)
{
this.name = name;
}
}
}
아이템 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study04
{
public class App {
public App()
{
Inventory items = new Inventory(3);
items.PutItem(new Item("장검"));
items.PutItem(new Item("단검"));
items.PutItem(new Item("쌍검"));
items.PutItem(new Item("쌍검"));
items.PutItem(new Item("쌍검"));
items.PutItem(new Item("쌍검"));
items.PutItem(new Item("쌍검"));
items.PutItem(new Item("종"));
items.PutItem(new Item("말"));
items.PutItem(new Item("탄"));
items.PutItem(new Item("식"));
items.PutItem(new Item("의"));
items.PutItem(new Item("노"));
items.PutItem(new Item("래"));
items.Print();
Item item = items.GetItem("활");
item = items.GetItem("쌍검");
items.Print();
//Console.WriteLine(item.Name);
items.Expansion(5);
items.PutItem(new Item("종"));
items.PutItem(new Item("말"));
items.PutItem(new Item("탄"));
items.PutItem(new Item("식"));
items.PutItem(new Item("의"));
items.PutItem(new Item("노"));
items.PutItem(new Item("래"));
items.Print();
}
}
}
코드

'C# > 수업내용' 카테고리의 다른 글
| 0621 (0) | 2022.06.21 |
|---|---|
| 0620 몬스터 잡고 아이템 얻고 인벤토리에 저장 (0) | 2022.06.20 |
| 0615 늑대 마구마구 때리기 (0) | 2022.06.15 |
| 0614 / 2048 만들기 (0) | 2022.06.14 |
| 늑대때리기 (0) | 2022.06.10 |