앱
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class App
{
private Dictionary<int, ItemData> dicItemDatas;
private Dictionary<int, MonsterData> dicMonDatas;
//생성자
public App()
{
//키,값 컬렉션
//값의 타입 : ItemData, 키(id)의 타입: int
dicItemDatas = new Dictionary<int, ItemData>();
ItemData itemData0 = new ItemData(100, "장검", 4.9f);
ItemData itemData1 = new ItemData(101, "단검", 3);
ItemData itemData2 = new ItemData(102, "활", 3.5f);
ItemData itemData3 = new ItemData(103, "지팡이", 2.3f);
dicItemDatas.Add(100, itemData0);
dicItemDatas.Add(101, itemData1);
dicItemDatas.Add(102, itemData2);
dicItemDatas.Add(103, itemData3);
dicItemDatas.Add(104, new ItemData(104, "창", 5.5f));
//Console.WriteLine("아이템데이터수: {0}", dicItemDatas.Count);
//ItemData itemData = dicItemDatas[100];
//Console.WriteLine("{0}, {1}, {2}", itemData.id, itemData.name, itemData.damage);
Item item = this.CreateItem(104);
//Console.WriteLine("{0}, {1}, {2}", item.data.id, item.data.name, item.data.damage);
//Console.WriteLine("{0}, {1}, {2}", item.Id, item.Name, item.Damage);
//Item item = new Item(itemData);
//Console.WriteLine("{0}, {1}, {2}", item.data.id, item.data.name, item.data.damage);
dicMonDatas = new Dictionary<int, MonsterData>();
MonsterData monData0 = new MonsterData(1000, "코볼트", 100);
MonsterData monData1 = new MonsterData(1001, "오크전사", 102);
MonsterData monData2 = new MonsterData(1002, "슬라임", 104);
dicMonDatas.Add(1000, monData0);
dicMonDatas.Add(1001, monData1);
dicMonDatas.Add(1002, monData2);
Console.WriteLine("몬스터데이터수: {0}", dicMonDatas.Count);
Console.WriteLine();
while(true)
{
Console.Write("몬스터 id입력(1000, 1001, 1002): ");
int MonNum = Convert.ToInt32(Console.ReadLine());
Monster monster = this.CreateMon(MonNum);
Console.WriteLine("생성몬스터: {0}", monster.data.name);
this.MonDie(monster.data.id);
Item item0 = DropItem(monster.data.rewardNum);
Console.WriteLine("획득한 아이템: {0}", item0.data.name);
Console.WriteLine();
}
}
//아이템생성 메서드
private Item CreateItem(int id)
{
ItemData data = this.dicItemDatas[id]; //id를 키값으로 하는 ItemData를 가져온다
return new Item(data);
}
//몬스터생성 메서드
private Monster CreateMon(int id)
{
MonsterData data = this.dicMonDatas[id];
return new Monster(data);
}
//몬스터 처치시 아이템드랍 메서드
private Item DropItem(int rewardNum)
{
ItemData data = this.dicItemDatas[rewardNum];
Console.WriteLine("몬스터가 {0}을(를) 드랍했다", data.name);
return new Item(data);
}
//몬스터 사망
private void MonDie(int id)
{
MonsterData data = this.dicMonDatas[id];
Console.WriteLine("{0}가 죽었습니다.", data.name);
}
}
}
몬스터
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class Monster
{
public MonsterData data;
//생성자
public Monster(MonsterData data)
{
this.data = data;
}
}
}
몬스터데이터
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
struct MonsterData
{
public int id;
public string name;
public int rewardNum;
public MonsterData(int id, string name, int itemId)
{
this.id = id;
this.name = name;
this.rewardNum = itemId;
}
}
}
'자료구조' 카테고리의 다른 글
Jagged Array (가변배열) (0) | 2021.12.28 |
---|---|
Dictionary + 인벤토리 (0) | 2021.12.26 |
큐 연습 문제 (카드) (0) | 2021.12.25 |
스택 연습문제 (세상의 균형) (0) | 2021.12.25 |
스택연습문제 (받아쓰기) (0) | 2021.12.25 |