10.15 Dictionary 활용해 업적 보상 UIPanel 만들기

C#/실습 2019. 10. 15. 16:44

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._15_step4
{
    class App
    {
        public App()
        {
            Dictionary<int, RewardData> rewardDatas = new Dictionary<int, RewardData>();
            rewardDatas.Add(1, new RewardData("코인", 1000));
            rewardDatas.Add(2, new RewardData("보호구1", 1));
            rewardDatas.Add(3, new RewardData("랜덤박스", 10));
            rewardDatas.Add(4, new RewardData("코인", 1500));
            Dictionary<int, AcheivementData> acheivementDatas = new Dictionary<int, AcheivementData>();
            acheivementDatas.Add(1, new AcheivementData("업적1", "업적1설명", 1));
            acheivementDatas.Add(2, new AcheivementData("업적2", "업적2설명", 2));
            acheivementDatas.Add(3, new AcheivementData("업적3", "업적3설명", 3));
            acheivementDatas.Add(4, new AcheivementData("업적4", "업적4설명", 4));

            UIPanel panel1 = new UIPanel(rewardDatas, acheivementDatas);
            panel1.ShowAchDataByKey(3);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._15_step4
{
    class UIPanel
    {
        public Dictionary<int, AcheivementData> dicAchData;
        public Dictionary<int, RewardData> dicRewData;
        public UIPanel(Dictionary<int, RewardData> rewardDatas, Dictionary<int, AcheivementData> achDatas)
        {
            this.dicAchData = achDatas;
            this.dicRewData = rewardDatas;
        }
        public RewardData SearchRewardDataByKey(int id)
        {
            return dicRewData[id];
        }
        public void ShowAchDataByKey(int id)
        {
            Console.WriteLine($"ID 번호{id}를 가진 업적데이터를 출력합니다.");
            Console.WriteLine(dicAchData[id].achName);
            Console.WriteLine(dicAchData[id].achDesc);
            Console.WriteLine(SearchRewardDataByKey(dicAchData[id].rewardDataId).name);
            Console.WriteLine(SearchRewardDataByKey(dicAchData[id].rewardDataId).amount);
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._15_step4
{
    class AcheivementData
    {
        public string achName;
        public string achDesc;
        public int rewardDataId;
        public AcheivementData( string name, string desc, int rewardData)
        {
            this.achName = name;
            this.achDesc = desc;
            this.rewardDataId = rewardData;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._15_step4
{
    class RewardData
    {        
        public string name;
        public int amount;
        public RewardData( string name, int amount)
        {
            this.name = name;
            this.amount = amount;
        }
    }
}

 

: