TIL/C#
-
내일배움캠프 16일차 TIL - 프로젝트 발표TIL/C# 2024. 5. 7. 21:11
[학습목표]3주차 팀 프로젝트를 마치고 발표를 진행한다. 피드백을 받고 팀 회고를 진행한다.[학습내용]오늘은 3주차 팀 프로젝트 발표를 진행했다. 다른 팀들의 발표도 보고 얻을 수 있는 게 있기 때문에 좋은 시간이었다. 우선 발표가 끝나고 튜터님들로부터 받은 피드백은 아래와 같다. 로그인 기능 관련아이디랑 비밀번호를 입력하는 로그인 기능을 넣는 것은 참신했다. 게임을 하는 것 같은 느낌이 나서 좋았다. 하지만 게임 저장 등에서 Json을 활용할 수 있게 되었다면, 추가적으로 그것들을 활용해서 회원가입 기능을 만들어보면 좋겠다.코드 관련프로젝트 폴더 구성 등이 잘 정리되어 있다.ColorManager의 CheckName() 메소드를 if else문으로 구현하게 되면, 추후 몬스터가 늘어났을 때 부가작업이 ..
-
내일배움캠프 15일차 TIL - 팀 프로젝트 마무리TIL/C# 2024. 5. 3. 20:30
[학습목표]저장/불러오기 기능을 구현하고, 클래스 파일들을 정리하거나 버그를 수정하는 등의 작업을 통해 프로젝트를 마무리한다.[학습내용]오늘은 우선 저장 기능을 구현했다. 개인 과제에서 진행했던 부분이라 어렵지 않게 끝낼 수 있을 거 같았다. 그런데 막상 해보니 계속 에러가 발생했다. 3가지 객체를 저장하려고 했는데, 3가지 객체 모두에서 각자의 에러가 떴다. 여러 에러가 동시에 나오니까 직렬화가 문제인지 역직렬화가 문제인지조차 알기 힘들었다. 구글에 검색해도 나와 비슷한 경우를 찾을 수 없어서 꽤 시간이 오래 걸렸다. ! 문제 발생 1Inventory 객체가 모종의 이유로 역직렬화가 되지 않는다. 시도우선 직렬화가 정상적으로 되었는지 저장 파일을 열어보았다. 그 곳에서는 이상을 찾을 수 없었다. 그래서..
-
내일배움캠프 14일차 TIL - 퀘스트 구현TIL/C# 2024. 5. 2. 20:48
[학습목표]팀 프로젝트 추가 요구사항 중 퀘스트 기능을 구현한다.[학습내용]오늘은 어제 구현을 끝내지 못한 퀘스트 기능을 구현 완료하였다. 마침 팀원분이 아이템과 인벤토리 기능을 구현하셔서 아이템 클래스를 가져다가 퀘스트 보상으로 사용할 수 있었다. 퀘스트 클래스는 다음과 같다.using System;using System.Collections.Generic;using System.Linq;using System.Security.Cryptography.X509Certificates;using System.Text;using System.Threading.Tasks;namespace OceanStory{ internal class Quest { public string QuestNa..
-
내일배움캠프 13일차 TIL - 전투 구현 마무리TIL/C# 2024. 5. 1. 20:38
[학습목표]팀 프로젝트에서 전투 기능 구현을 마무리하고 필수 요구사항 구현을 완료한다.[학습내용]어제 전투기능 중 플레이어 공격 기능 구현을 완료했기 때문에, 오늘은 몬스터의 공격을 구현했다. 플레이어 공격 직후에 몬스터 공격 차례가 오기 때문에, AttackScene이 끝날 때 MonsterAttackScene을 호출했다.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OceanStory.Scenes{ internal class MonsterAttackScene : Scene { public override voi..
-
내일배움캠프 12일차 TIL - 팀 프로젝트 전투 기능 관련TIL/C# 2024. 4. 30. 20:57
[학습목표]C# 강의를 완강하고, 팀 프로젝트 필수 구현기능을 구현한다.[학습내용]오늘은 오전에 C# 강의를 모두 끝냈다. 5주차 강의는 정렬 알고리즘과 탐색 알고리즘 등 주로 알고리즘에 관한 내용이었는데, 학교에서 다 배운 내용이어서 빠르게 들었다. 오후부터 팀 프로젝트 진행을 시작했다. 원래는 각자 기능을 분담하여 구현하려 하였으나, 게임의 핵심인 몬스터와 전투 기능이 구현되지 않으면 다른 부분을 구현할 수 없었다. 그래서 핵심 파트 부분을 빠르게 구현할 수 있도록 다 같이 보며 구현을 진행하였다. 오늘 구현해야 하는 기능은 전투 기능이었다. 우선 전투 관련 기능을 구현하기 위해 배틀 매니저를 만들었다. 그리고 이 배틀 매니저 안에 전투 관련 기능을 구현했다. 1 ~ 4마리의 몬스터들을 무작위로 생..
-
내일배움캠프 11일차 TIL - 텍스트 기반 RPG 제작 팀 프로젝트 기초TIL/C# 2024. 4. 29. 20:34
[학습목표]텍스트 기반 RPG 게임 제작을 주제로 새로운 팀 프로젝트를 시작한다. 그리고 C# 강의를 시청하여 박싱(Boxing)에 대해 학습한다. [학습내용]이번 주차는 팀 프로젝트로 진행된다. 주제는 지난 주차의 개인 프로젝트와 비슷한 텍스트 기반 RPG 게임 제작이다. 그러나 이번 프로젝트는 팀으로 진행되는 것 외에도 게임에서 전투나 퀘스트, 캐릭터 커스텀 기능 등을 추가로 구현해야 한다.구현하게 될 기능들은 다음과 같다. 필수 구현게임 시작 화면상태 보기전투 시작선택 구현캐릭터 생성직업 선택치명타회피스킬레벨업보상퀘스트콘솔 디자인몬스터 종류 추가아이템(인벤토리)회복 아이템스테이지게임 저장 우선 프로젝트 이름을 정했다. 팀 이름이 Gambling 7|7|7 JackPot인 것을 고려하여 OceanSt..
-
내일배움캠프 10일차 TIL - 인터페이스, enum, 학습법 특강TIL/C# 2024. 4. 26. 19:34
[학습목표]C# 4주차 강의를 시청하고 인터페이스와 열거형 enum에 대해 학습한다. 그리고 학습법 특강을 청취한다.[학습내용]오늘은 C# 4주차 강의를 시청했다. 인터페이스과 열거형에 관한 내용은 다른 언어에서 자세하게 다룬 적이 없기 때문에 이번 기회에 확실하게 잡아놓고 가기로 했다. 인터페이스인터페이스를 다루기 전에 먼저 다중 상속에 관련된 문제에 대해 다뤄야했다.C#에서 다중 상속을 사용하지 않는 이유1. 다이아몬드 문제: 한 클래스가 두 개 이상의 부모 클래스로부터 상속받는 경우 같은 이름의 멤버의 처리에 대한 문제2. 설계의 복잡성 증가3. 이름 충돌의 문제와 해결의 어려움4. 설계의 일관성과 단순성 유지 기본적으로 C#은 클래스에서 다중 상속을 지원하지 않는다고 한다. 하지만 이걸 인터페이스..
-
내울배움캠프 9일차 TIL - 개인과제 완성TIL/C# 2024. 4. 25. 19:53
[학습목표]C# 개인 과제 추가기능을 모두 구현하여 제출한다.[학습내용]오늘은 개인 과제 제출일이기 때문에 개인 과제에 몰두하여 마무리했다.아래는 오늘까지 구현한 모든 기능이다. 오늘 새롭게 구현한 것들은 파란색으로 칠했다. 필수기능게임 시작 화면 구성스테이터스 보기 기능인벤토리 기능장착 관리 기능상점 기능아이템 구매 기능추가기능아이템 정보 클래스화아이템 정보 배열(리스트)로 관리아이템 판매 기능장착 관리 기능 개선던전 (추가)휴식 기능 (추가)레벨업 (추가)저장 / 불러오기 (추가)항목 수는 많지 않지만 스케일이 큰 게 끼어있기 때문에 시간이 생각보다 오래 걸렸다. 던전과 휴식, 레벨업 기능은 사실 크게 어렵지 않았다. 던전의 경우 구동 방식이 상점과 크게 다르지 않고, 씬매니저와 시스템 메시지 출력 ..