본문 바로가기

분류 전체보기

(61)
8월 24일 TIL 인터페이스와 열거형 다중상속을 사용하지 않는 이유 다이아몬드 문제: 한 클래스가 두 개 이상의 부모 클래스로부터 동일한 멤버를 상속받을 때 같은 이름의 멤버가 있을 경우 어떤 부모클래스의 멤버인지 애매해짐 설계의 복잡성 증가: 다중상속 시 클래스간의 관계가 복잡해지며 클래스간의 상속 관계 파악이 어려워지고 코드의 유지보수가 어려워짐 이름 충돌과 충돌 해결의 어려움: 여러개의 클래스로부터 상속받은 멤버들이 충돌할 수 있고 이를 해결하기 위해서는 이름을 재정의하거나 부모클래스를 지정해야하는데 그렇게 되면 코드가 복잡해지고 오류 가능성도 증가한다 이러한 이유로 C#에서는 단일 상속만 가능하도록 제한하여 코드의 일관성과 단순성을 유지한다 만약 다중상속이 필요하다면 인터페이스를 이용하여 유사하게 구현할 수 있다 ..
8월 23일 TIL 개인 과제 제출 및 read.md 작성 완료 필수 기능에서 플레이어 스탯 옆에 장비 장착으로 인해 추가된 스탯 표기 기능 구현 못함 텍스트를 아이템 설명 창 안에서 벗어나지 않게 제한하는 기능도 구현 못함 JSON 파일에 구조체로 만든 플레이어 스탯과 리스트로 만든 아이템 목록을 같이 저장하려고 했는데 하나의 파일에 저장하려고 하니 기존 데이터가 날라가는 문제 발생(플레이어 정보 저장 후 아이템 저장 시 플레이어 정보가 모두 아이템 정보에 덮어씌워짐) 세이브데이터는 하나만 만드는게 좋을거같다고 생각하고 방법을 찾아봤지만 힘들어서 튜터님께 질문했는데 실무에서도 데이터를 따로 나눠서 저장한다고 하는 것을 알음 JSON을 추가로 만들어 저장해보니 정상적으로 작동 미구현 기능과 추가 구현 기능들 시간날때 짬짬히..
8월 22일 TIL public static void SaveData(PlayerInfo playerInfo) { string saveJson = JsonConvert.SerializeObject(playerInfo, Formatting.Indented); File.WriteAllText("savefile.json", saveJson); Console.WriteLine("저장완료"); } public static PlayerInfo LoadData() { string loadJson = File.ReadAllText("savefile.json"); PlayerInfo loadPlayerInfo = JsonConvert.DeserializeObject(loadJson); return loadPlayerInfo; } 데이터 세..
8월 21일 TIL ※21일에 과제에 집중하느라 TIL을 잊어서 22일 TIL과 같이 작성 개인 과제 - TRPG 게임 제작 필수 요구사항 1.게임 시작화면 2.상태창 3.인벤토리 매개변수로 입력값의 범위를 지정하여 범위를 벗어나면 재입력을 받는 CheckValidInput메서드는 제공 코드에서 가져와서 사용하고 그 외에는 인터넷을 찾아보며 직접 구현 게임 타이틀 화면 타이틀 로고는 텍스트를 아스키 아트로 변환해주는 사이트를 이용 아스키 문자를 바로 출력시 콘솔에서 글자가 깨지는 오류가 있어 Console.OutputEncoding = Encoding.UTF8; 을 사용해 해결 콘솔 창 크기도 Console.SetWindowSize(winWidth, winHeight);로 새로 지정 스태이터스 창 타이틀에서 1번 입력하여 ..
8월 18일 TIL 오늘 한 것 - 강의제출 과제 외 일반과제 풀어보기 2주차 구구단 출력하기 static void Gugudan() { for (int i = 1; i < 10 ; i++) { for (int j = 1; j < 10 ; j++) { Console.WriteLine($"{i} × {j} = {i * j}"); } } } 바깥의 for 문으로 첫번째 수를 반복하고 안쪽에 감싸진 for문으로 두번째 숫자를 반복하여 곱셈 연산결과를 출력한다 별모양 삼각형 출력 static void Star() { for (int i = 1; i
8월17일 TIL 블랙잭 게임 구현하기 제공 코드 using System; using System.Collections.Generic; public enum Suit { Hearts, Diamonds, Clubs, Spades } public enum Rank { Two = 2, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace } // 카드 한 장을 표현하는 클래스 public class Card { public Suit Suit { get; private set; } public Rank Rank { get; private set; } public Card(Suit s, Rank r) { Suit = s; Rank = r; } public ..
8월 16일 TIL C#강의 2주차 내용 복습 배열 여러개의 변수가 같은 자료형일때 사용 배열의 1번째 인덱스 번호는 0부터 시작 → 배열의 첫번째 요소에 접근하려면 array1[0] = 1; 위와 같이 사용해야함 int[] itemPrices = { 100, 200, 300, 400, 500 }; int totalPrice = 0; for (int i = 0; i < itemPrices.Length; i++) { totalPrice += itemPrices[i]; } Console.WriteLine("총 아이템 가격: " + totalPrice + " gold"); 배열의 요소에 접근할 때는 하나씩 접근하지 않고 반복문과 인덱스 번호를 이용하여 접근 다차원 배열 // 2차원 배열의 선언과 초기화 int[,] array3 ..
8월 14일 TIL 1.새로운 팀 편성 후 팀 페이지와 계획서 작성 2.C# 1주차 강의 수강 3.GIT에 1주차 강의 과제 파일 커밋후 머지 테스트