미완성 LOL캐릭터 생성 후 데미지 입기(데이터 저장 및 불러오기)
C#/미완성2019. 4. 10. 03:39
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class CharacterInfo { public int id; public int hp; public CharacterInfo(int id , int hp) { this.id = id; this.hp = hp; } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class Character { private CharacterInfo characterinfo; private int v; public CharacterInfo info { get; set; } public Character() { } public void TakeDamage(int damage) { this.info.hp -= damage; var data = new CharacterData(); if (this.info.hp <= 0) { this.info.hp = 0; Console.WriteLine("{0}이(가) 사망하였습니다. ({1}/{2})", data.name, info.hp, data.hp); } else { Console.WriteLine("{0}이(가) 피해 (-{1})받았습니다 ({2}/{3})", data.name, damage, info.hp, data.hp); } } public void AttackDamage(Character Target) { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class GameInfo { public List<CharacterInfo> characterInfo; public GameInfo() { this.characterInfo = new List<CharacterInfo>(); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class UserInfo { public GameInfo gameInfo; public UserInfo() { this.gameInfo = new GameInfo(); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class CharacterData { public int id; public int type; public string name; public int hp; public int damage; public float range; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class Monster : Character { public Monster() : base() { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class Champion : Character { public Champion() :base() { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class Anivia : Champion { public Anivia() : base() { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class Baron : Monster { public Baron() : base() { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using Newtonsoft.Json; namespace _0410Test { public class GameLauncher { private List<Character> characters = new List<Character>(); private UserInfo userInfo; private const string USER_INFO_FILE_PATH = "./info/user_info.json"; Dictionary<int, CharacterData> dicCharacterData = new Dictionary<int, CharacterData>(); Dictionary<int, CharacterInfo> dicCharacterInfo = new Dictionary<int, CharacterInfo>(); public GameLauncher() { } public void gameStart() { //this.LoadData(); //Console.WriteLine("게임준비완료"); if (Directory.Exists("./info")) { Console.WriteLine("기존유저입니다"); //CharacterInfo characterinfo = null; var json = File.ReadAllText(USER_INFO_FILE_PATH); var arrcharacterinfo = JsonConvert.DeserializeObject<CharacterInfo[]>(json); //this.characterinfo = characterinfo; foreach (var data in arrcharacterinfo) { this.dicCharacterInfo.Add(data.id, data); } //this.CreateUserInfo(arrcharacterinfo); } else { Console.WriteLine("신규유저입니다"); Directory.CreateDirectory("./info");//새로운 폴더를 생성합니다. this.CreateUserInfo(); } this.Save(); } public void ReadFileAndToDictionary<T>(string path, Dictionary<int,T>dic) where T : Character { var json = File.ReadAllText(path); var arrDatas = JsonConvert.DeserializeObject<T[]>(json); foreach(var data in arrDatas) { dic.Add(data.info.id, data); } } public T CreateCharacter<T>(int id) where T : Character,new() { return null; } public void CreateUserInfo(UserInfo info = null)//선택적매개변수 (값을 넣지 않으면 info 의 값은 null로 들어간다) { if (info == null) //info의 값이 null 즉,아무 값 도 들어오지 않을 시 { this.userInfo = new UserInfo(); //새로운 UserInfo 인스턴스를 생성한다. } else { this.userInfo = info; // 어떠한 값이 들어올 시 } } public void LoadData() { var json = File.ReadAllText("./data/user_data.json"); var arrCharacterDatas = JsonConvert.DeserializeObject<CharacterData[]>(json); foreach (var data in arrCharacterDatas) { this.dicCharacterData.Add(data.id, data); } } public void Save() { var characterInfo = new List<CharacterInfo>(); foreach (var character in this.characters) { characterInfo.Add(character.info); } this.userInfo.gameInfo.characterInfo = characterInfo; var json = JsonConvert.SerializeObject(this.userInfo); File.WriteAllText(USER_INFO_FILE_PATH, json); Console.WriteLine("게임이 저장되었습니다"); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { public class App { private GameLauncher gamelauncher; public App() { gamelauncher = new GameLauncher(); } public void Start() { Console.WriteLine("게임을 시작합니다"); gamelauncher.gameStart(); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0410Test { class Program { static void Main(string[] args) { var app = new App(); app.Start(); } } } | cs |
'C# > 미완성' 카테고리의 다른 글
(미완성)인벤토리 만들기 (0) | 2019.04.08 |
---|---|
#미완성#인벤토리 (0) | 2019.03.30 |
Array[배열] #미완성 : 메소드예시 (0) | 2019.03.27 |
와우 캐릭터생성(미완성) (0) | 2019.03.27 |
미완성(3.25 과제) new, class, dot(.), 형식변환, 멤버변수, 지역변수 (0) | 2019.03.26 |