C#프로그래밍
딕셔너리 다시 연습 (주석 자세히)
노재두내
2023. 7. 26. 18:08
using System;
using System.Collections;
using System.Collections.Generic;
namespace LearnDotnet
{
public class App
{
//생성자
public App()
{
//아이템 인스턴스화 (실제로 생성)
//초기화
Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
dicItemDatas.Add(1, new ItemData(100, "장검", 8));
dicItemDatas.Add(2, new ItemData(101, "단검", 5));
dicItemDatas.Add(3, new ItemData(102, "활", 6));
//사전에서 키로 값을 가져오기(키1(dic[1])로 장검을 가져오기 )
ItemData data = dicItemDatas[1];//키로 값에 접근해서 ItemData 타입의 data 에 저장
Item item = new Item(data);// 나온 값을 Item 타입의 item 에 저장?
Console.WriteLine(item.data.id);
Console.WriteLine(item.data.name);
Console.WriteLine(item.data.damage);
//몬스터 데이터를 저장하는 컬렉션 dicMonsterDatas
Dictionary<int, MonsterData> dicMonsterDatas = new Dictionary<int, MonsterData>();
dicMonsterDatas.Add(1, new MonsterData(1000, "고블린",8));//monsterDatas 사전에 추가
dicMonsterDatas.Add(2, new MonsterData(1001, "트롤",5));
dicMonsterDatas.Add(3, new MonsterData(1002, "오우거",6));
//트롤의 데이터를 가져오기
MonsterData monsterData = dicMonsterDatas[3];
Monster monster = new Monster(dicItemDatas,monsterData);
Console.WriteLine(monster.monsterData.name);
//몬스터 죽음
//monster.Die();
//몬스터의 이름을 가져옴(몬스터 죽으면 생길 아이템)
Item dropItem = monster.Die();
//싱글톤패턴
//DataManager.instance.LoadItemDatas();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Monster
{
public MonsterData monsterData;
Dictionary<int, ItemData> dicItemDatas;
//생성자
public Monster(Dictionary<int,ItemData> dicItemDatas ,MonsterData monsterData)//몬스터가 딕셔너리를 들고 있어야함
{
this.monsterData = monsterData;
this.dicItemDatas = dicItemDatas;
}
public Item Die()
{
Console.WriteLine("{0}이 죽었습니다.",this.monsterData.name);
ItemData itemData = this.dicItemDatas[this.monsterData.item_id];//this.monsterData.item_id는 키
return new Item(itemData);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace LearnDotnet
{
public class MonsterData
{
public int id;
public string name;
public int item_id;
//생성자
public MonsterData(int id, string name,int item_id)
{
this.id = id;
this.name = name;
this.item_id = item_id;
}
}
}