수업 014 (04.23 2020) 복습 - json, dictionary..etc
2020. 4. 23. 11:10
728x90
1. Sample
2. App.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
namespace Study._015
{
class App
{
Dictionary<int, AchievementData> dicAchievementDatas;
Dictionary<int, AchievementInfo> dicAchievementInfos;
// 생성자
public App()
{
// 파일불러오기
string json = File.ReadAllText(path);
AchievementData[] arrAchievementDatas = JsonConvert.DeserializeObject<AchievementData[]>(json);
this.dicAchievementDatas = new Dictionary<int, AchievementData>();
foreach (AchievementData data in arrAchievementDatas)
{
}
// 업적들 저장할 곳
this.dicAchievementInfos = new Dictionary<int, AchievementInfo>();
{
Console.WriteLine("\n=========== 기존유저입니다 환영합니다! ===========\n");
string jsonInfo = File.ReadAllText(pathInfo);
AchievementInfo[] achievementInfos = JsonConvert.DeserializeObject<AchievementInfo[]>(jsonInfo);
foreach (AchievementInfo info in achievementInfos)
{
}
}
else
{
Console.WriteLine("\n=========== 신규유저입니다 환영합니다! ===========\n");
foreach (KeyValuePair<int, AchievementData> pair in dicAchievementDatas)
{
}
this.SaveAchievement();
}
this.PrintAchievement(1000);
this.DoAchievement(1000);
this.SaveAchievement();
}
// 기능
// 업적 보기
public void PrintAchievement(int id)
{
Console.WriteLine("==================== 업적보기 ==================== \n");
AchievementData data = this.dicAchievementDatas[id];
AchievementInfo info = this.dicAchievementInfos[id];
Console.WriteLine("id: {0}\t name: {1}\t goal: {2}/{3}\t", data.id, data.name, info.count, data.goal);
Console.WriteLine("{0} \n", data.description);
Console.WriteLine("===================================================");
}
// 업적하기
public void DoAchievement(int id)
{
AchievementData data= this.dicAchievementDatas[id];
Console.WriteLine("업적 1개를 했습니다. ({0})", data.description);
AchievementInfo info = this.dicAchievementInfos[id];
}
// 업적들 저장하기
public void SaveAchievement()
{
// 객체 (배열) > json 형식
// 사전에 있는 AchievementInfo 객체를 배열에 담기
AchievementInfo[] arrAchievementInfos = new AchievementInfo[length];
int idx = 0;
foreach (KeyValuePair<int, AchievementInfo> pair in this.dicAchievementInfos)
{
}
foreach (AchievementInfo info in arrAchievementInfos)
{
}
// 객체 > json 형식의 문자열
string json = JsonConvert.SerializeObject(arrAchievementInfos);
// 파일저장
File.WriteAllText(path, json);
}
}
}
|
2. AchievementData.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study._015
{
class AchievementInfo
{
public int id;
public int count;
public AchievementInfo(int id, int count)
{
this.id = id;
this.count = count;
}
}
}
|
3. AchievementInfo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study._015
{
class AchievementData
{
public int id;
public string name;
public int goal;
public int reward_type;
public int reward_amount;
public string description;
public AchievementData()
{
}
}
}
|
4. Result
728x90
'C# > Study' 카테고리의 다른 글
수업 015 (04.24 2020) 복습 Inventory + percentage (0) | 2020.04.24 |
---|---|
수업 014 (04.23 2020) - DateTime (0) | 2020.04.24 |
수업 013 (04.22 2020) dictionary, json // Achievement (0) | 2020.04.22 |
수업 013 (04.22 2020) 복습 - dictionary<Tkey, TValue> (0) | 2020.04.22 |
수업 012 (04.21 2020) List<> HerbBag (0) | 2020.04.22 |