본문 바로가기
C#/수업내용

[ C# 11일차 ] 변하지 않는 데이터 만들기 연습2

by 왹져박사 2023. 1. 13.
728x90

1. 배열

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;


namespace Quest
{
    class App
    {
        //생성자
        public App()
        {
            string json0 = File.ReadAllText("./mission_data.json");
            string json1 = File.ReadAllText("./item_data.json");

            MissonData[] missonDatas = JsonConvert.DeserializeObject<MissonData[]>(json0);
            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json1);

            //출력 확인
            foreach (MissonData data in missonDatas)
            {
                Console.WriteLine("id: {0}, 미션명: {1}, 미션설명: {2}, 목표: {3}, 보상아이템id: {4}, 수량: {5}", data.id, data.name, data.description, data.target, data.reward, data.count);
            }


            foreach (ItemData data in itemDatas)
            {
                Console.WriteLine("id: {0}, 아이템 명: {1}", data.id, data.name);
            }

            Console.WriteLine();
            PrintMission(missonDatas, itemDatas);
            Console.WriteLine();


            //찾기
            int searchMissionId = 1001;
            MissonData foundData = null;
            foreach(MissonData data in missonDatas)
            {
                if(data.id == searchMissionId)
                {
                    foundData = data;
                }
            }
            if (foundData != null)
            {
                Console.WriteLine("id: {0}, 미션명: {1}, 미션설명: {2}, 목표: {3}, 보상아이템id: {4}, 수량: {5}", foundData.id, foundData.name, foundData.description, foundData.target, foundData.reward, foundData.count);
            }


        }
        public void PrintMission(MissonData[] missonDatas, ItemData[] itemDatas)
        {
            //사용자 출력
            for (int i = 0; i < missonDatas.Length; i++)
            {
                for (int j = 0; j < itemDatas.Length; j++)
                {
                    if (missonDatas[i].reward == itemDatas[j].id)
                    {
                        string rewardItem = itemDatas[j].name;

                        Console.WriteLine("id: {0}, 미션명: {1}, 미션설명: {2}, 목표: {3}, 보상아이템id: {4}, 수량: {5}", missonDatas[i].id, missonDatas[i].name, missonDatas[i].description, missonDatas[i].target, rewardItem, missonDatas[i].count);

                    }
                }
            }

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

namespace Quest
{
    class MissonData
    {

        public int id;
        public string name;
        public string description;
        public int target;
        public int reward;
        public int count;
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Quest
{
    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 Quest
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
        }
    }
}

728x90