카테고리 없음
본캠프_10일차_TIL
티-히히
2024. 9. 25. 22:20
오늘의 목표
아이템들을 json형태로 리스트화 시키기.
아이템은 더 많아질텐데 관리가 힘들 것같아
따로 아이템차트 파일을 빼두는 방식을 생각했습니다.
확장자는 json,xml,csv,데이터베이스 방법이 있으나
제일 json이 코드를 더 간결하게 해줄 것 같아 json으로 채택했습니다.
json을 사용하기위해 일단 Nuget패키지관리에 들어가 Newtonsoft.Json을 설치해줍니다.
설치 후 아이템목록 JSON파일을 만들어줍니다.
[
{
"name": "수련자 갑옷",
"attackPower": 0,
"defensePower": 5,
"description": "수련에 도움을 주는 갑옷입니다.",
"price": 1000
},
{
"name": "무쇠갑옷",
"attackPower": 0,
"defensePower": 9,
"description": "무쇠로 만들어져 튼튼한 갑옷입니다.",
"price": 1000
},
{
"name": "스파르타의 갑옷",
"attackPower": 0,
"defensePower": 15,
"description": "무쇠로 만들어져 튼튼한 갑옷입니다.",
"price": 3500
},
{
"name": "낡은 검",
"attackPower": 2,
"defensePower": 0,
"description": "무쇠로 만들어져 튼튼한 갑옷입니다.",
"price": 600
},
{
"name": "청동도끼",
"attackPower": 5,
"defensePower": 0,
"description": "무쇠로 만들어져 튼튼한 갑옷입니다.",
"price": 1500
},
{
"name": "스파르타의 창",
"attackPower": 7,
"defensePower": 0,
"description": "무쇠로 만들어져 튼튼한 갑옷입니다.",
"price": 1000
}
]
그리고 JSON 파일경로를 설정해 준 후 가져온 JSON을 읽어온 후
LIST로 변환합니다.
string jsonFilePath = Path.Combine(parentDirectory, relativePath);
Console.WriteLine($"jsonFilePath : {jsonFilePath}");
// 파일이 존재하는지 확인
if (File.Exists(jsonFilePath))
{
// JSON 파일의 내용을 읽어들임
string jsonContent = File.ReadAllText(jsonFilePath);
// JSON 문자열을 Item 리스트로 변환
List<Item> defaultShopItems = JsonConvert.DeserializeObject<List<Item>>(jsonContent);
Shop shop = new Shop(startingItems, defaultShopItems);
EnterGame(warrior, inventory, shop);
}
List<Item> defaultShopItems = new List<Item>
{
new Item("수련자 갑옷",0, 5 ,"수련에 도움을 주는 갑옷입니다. ", 1000),
new Item("무쇠갑옷",0,9,"무쇠로 만들어져 튼튼한 갑옷입니다." , 1000),
new Item("스파르타의 갑옷",0,15,"무쇠로 만들어져 튼튼한 갑옷입니다.", 3500),
new Item("낡은 검",2,0,"무쇠로 만들어져 튼튼한 갑옷입니다.", 600),
new Item("청동도끼",5,0,"무쇠로 만들어져 튼튼한 갑옷입니다.", 1500),
new Item("스파르타의 창",7,0,"무쇠로 만들어져 튼튼한 갑옷입니다.", 1000)
};*/
원래 넣었던 defaultShopItems리스트입니다.
일일히 메인에서 넣어줘야했던 정보들인데 이제 JSON을 따로 분리해서 관리할 수 있게 되었습니다.