using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;
namespace Mission
{
class App
{
Dictionary<int, MissionData> dicMissionData;
Dictionary<int, ItemData> dicItemData;
Button btnMission;
//생성자
public App()
{
//게임 준비 과정
this.dicMissionData = new Dictionary<int, MissionData>();
//this.dicItemData = new Dictionary<int, ItemData>();
this.LoadMissionData();
this.LoadItemData();
this.btnMission = new Button();
//사용자가 미션버튼을 눌렀다면
//미션 팝업을 보여준다
this.btnMission.onClick = () =>
{
this.OpenMissionPopup();
};
this.btnMission.Click();
}
void OpenMissionPopup()
{
Console.WriteLine("미션 목록을 보여준다");
foreach(KeyValuePair<int, MissionData> pair in this.dicMissionData)
{
MissionData data = pair.Value;
Console.WriteLine(data.name);
Console.WriteLine(data.desc, data.goal);
ItemData itemData = this.dicItemData[data.reward_item_id];
string rewardName = itemData.name;
Console.WriteLine("보상 : {0} X {1}", rewardName, data.amount);
Console.WriteLine();
}
}
private void LoadMissionData()
{
var path = "./mission_data.json";
var json = File.ReadAllText(path);
MissionData[] arr = JsonConvert.DeserializeObject<MissionData[]>(json);
foreach(var data in arr)
{
this.dicMissionData.Add(data.id, data);
}
Console.WriteLine("dicMissionData : {0}", dicMissionData.Count);
}
private void LoadItemData()
{
var path = "./item_data.json";
var json = File.ReadAllText(path);
ItemData[] arr = JsonConvert.DeserializeObject<ItemData[]>(json);
dicItemData = arr.ToDictionary(x => x.id);
Console.WriteLine("dicItemData : {0}", dicItemData.Count);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mission
{
class MissionData
{
public int id;
public string name;
public string desc;
public int goal;
public int reward_item_id;
public int amount;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mission
{
class ItemData
{
public int id;
public string name;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mission
{
class Item
{
//생성자
public Item()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mission
{
class Button
{
public Action onClick;
//생성자
public Button()
{
}
public void Click()
{
}
}
}
이게 뭐더라
'c# > 수업 내용' 카테고리의 다른 글
인벤토리 만들기 (0) | 2023.01.16 |
---|---|
변하는 데이터 만들기 연습 (0) | 2023.01.15 |
230113 (0) | 2023.01.13 |
1/9 개수세기 (0) | 2023.01.09 |
1/9 배열 연습(학생) (0) | 2023.01.09 |