아카이브
Dictionary 연습 본문
using LearnDotnet;
using System;
using System.Collections;
using System.Collections.Generic;
//using 지시문을 사용하면 네임스페이스에 정의된 형식을 해당 형식의 정규화된 네임스페이스를 지정하지 않고도 사용할 수 있습니다.
namespace LearnDotnet
{
public class App
{
//생성자
public App()
{
//초기화
//Dictionary : 키/값 쌍으로 데이터를 저장 관리 하는 컬렉션
Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
dicItemDatas.Add(100, new ItemData(100, "장검", 8));
dicItemDatas.Add(101, new ItemData(101, "단검", 5));
dicItemDatas.Add(102, new ItemData(102, "활", 6));
//사전에서 키로 값을 가져오기
//고블린을 잡았다
//장검이 나왔다
ItemData data = dicItemDatas[100];
Item item = new Item(data);
Console.WriteLine(item.data.id); //100
Console.WriteLine(item.data.name); //장검
Console.WriteLine(item.data.damage); //8
//몬스터 데이터를 저장하는 컬랙션 Dic
Dictionary<int, MonsterData> dicMonsterDatas = new Dictionary<int, MonsterData>();
dicMonsterDatas.Add(1000, new MonsterData(1000, "고블린", 100));
dicMonsterDatas.Add(1001, new MonsterData(1001, "트롤", 101));
dicMonsterDatas.Add(1002, new MonsterData(1002, "오우거", 102));
//고블린 데이터 가져오기
MonsterData monsterdata = dicMonsterDatas[1000];
Monster monster = new Monster(dicItemDatas, monsterdata);
Console.WriteLine(monster.data.id);
Console.WriteLine(monster.data.name);
Item dropItem = monster.Die();
Console.WriteLine("{0}을 주웠습니다.",dropItem.GetName());
}
//
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class ItemData
{
public int id;
public string name;
public int damage;
//생성자
public ItemData(int id, string name, int damage)
{
this.id = id;
this.name = name;
this.damage = damage;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Item
{
public ItemData data;
//생성자
public Item(ItemData data)
{
this.data = data;
}
public string GetName()
{
//반환값
return this.data.name;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal 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;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Monster
{
public MonsterData data;
Dictionary<int, ItemData> dicItemDatas;
//생성자
public Monster(Dictionary<int, ItemData> dicItemDatas, MonsterData data)
{
this.dicItemDatas = dicItemDatas;
this.data = data;
}
//죽는다
public Item Die()
{
Console.WriteLine("{0}이 죽었습니다.", this.data.name);
ItemData itemData = this.dicItemDatas[this.data.item_id];
return new Item(itemData);
}
}
}
'C#프로그래밍' 카테고리의 다른 글
Dictionary 인벤토리* (0) | 2023.07.26 |
---|---|
Dictionary 연습2 (0) | 2023.07.26 |
2차원 배열 연습 (0) | 2023.07.25 |
2차원 배열 (0) | 2023.07.25 |
배열연습 인벤토리 (0) | 2023.07.25 |