c#/수업 내용

변하지 않는 데이터 만들기 연습 2 (Mission, Item)

yeeendy 2023. 1. 13. 15:51
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