본문 바로가기

스파르타코딩클럽18

TextRPG - Gold, Inventory 불러오기 / 좋은 개발자의 태도 팀 프로젝트 - Text 게임 [스파르타 던전] 개발 문제 1. player 이름, player 골드 불러오기 상점 창에서 위처럼 [(player.name)의 Gold] : (player.Gold) G 를 표기하고 싶은데, 솔루션 파일이 여러 개의 클래스로 나누어져 있다보니 어디서 가지고 와야할까 고민했었다. Player.cs 에서 직접 가지고 오려고 했더니 오류가 떴고, name 과 gold 메서드를 가진 Character 클래스에서도 가져올 수 없었다. 정답은..? Name 과 Gold 를 들고 있는 건 Player1 이다. Player1은 누구냐? Player를 관리하기 위해 PlayerManager를 만들었다. 최상위 클래스인 Program에서 public static Player player1 .. 2023. 11. 20.
TextRPG - 상점 구현 / 상점 UML 작성 Algorithm CodeKata #11 짝수와 홀수 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AlgorithmCodeKata { // 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. // num은 int 범위의 정수입니다. // 0은 짝수입니다. internal class _001_EvenOdd { public string solution(int num) { if (num % 2 == 0) { return ("Even"); } else { retu.. 2023. 11. 17.
시간 및 공간 복잡도 / 배열의 장단점 알고리즘 동적 프로그래밍과 분할정복의 차이 둘 다 문제를 작은 단위로 쪼개어 큰 단위로 접근하는데, 작은 단위 해결 단계에서 문제 해결을 위한 데이터가 더 필요하다면 동적 프로그래밍을 사용, 같은 단계에서 해결 방법이 비슷하게 반복된다면 분할 정복 사용. 시간 복잡도 ● O(1) : 상수 시간 복잡도 : 입력 크기에 상관없이 실행 시간이 일정 ● O(n) : 선형 시간 복잡도 : 입력 크기에 비례하여 실행 시간이 증가 ● O(log n) : 로그 시간 복잡도 : 입력 크기에 대해 로그 함수적으로 증가 ● O(n^2) : 이차 시간 복잡도 : 입력 크기의 제곱에 비례하여 실행 시간이 증가 공간 복잡도 ● 고정 공간 (Fixed Space) 알고리즘 실행에 필요한 고정 메모리 요소. 일반적으로 변수, 상수,.. 2023. 11. 16.
Sort 사용하기 / DFS 와 BFS의 차이 C# 문법 복습 정렬 알고리즘 - C# Sort 정렬 알고리즘에는 선택 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬 등 여러가지 방법이 있지만 C#에서는 많은 양의 데이터를 배열이나 리스트로 정리하기 때문에 Sort 라는 메서드를 사용해 배열과 리스트의 데이터를 정렬할 수 있다. // 정수 배열 정렬 예제 int[] numbers = { 5, 2, 8, 3, 1, 9, 4, 6, 7 }; Array.Sort(numbers); Console.WriteLine(string.Join(", ", numbers)); // 문자열 리스트 정렬 예제 List names = new List { "John", "Alice", "Bob", "Eve", "David" }; names.Sort(); Console.WriteLin.. 2023. 11. 15.
Delegate를 이용한 CallBack 함수 만들기 / LINQ 사용법 C# 문법 복습 delegate // 델리게이트 선언 public delegate void EnemyAttackHandler(float damage); // 적 클래스 public class Enemy { // 공격 이벤트 public event EnemyAttackHandler OnAttack; // 적의 공격 메서드 public void Attack(float damage) { // 이벤트 호출 OnAttack?.Invoke(damage); // null 조건부 연산자 // null 참조가 아닌 경우에만 멤버에 접근하거나 메서드를 호출 } } // 플레이어 클래스 public class Player { // 플레이어가 받은 데미지 처리 메서드 public void HandleDamage(float d.. 2023. 11. 14.
TextRPG - 텍스트 색상 변경 / CheckValidInput C# 스크립트를 이용해 콘솔 RPG 게임 만들기 텍스트 색상 변경 함수 콘솔을 실행했을 때 WriteLine 단위로 색상을 변경하기 위해 보통 아래와 같은 코드를 사용한다. Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("1. 인벤토리"); Console.ResetColor(); 만약 RPG 게임처럼 매 장면마다 색상 변환이 필요한 상황에서 위와 같은 코드를 계속 사용하는 것은 개발자도 불편하고, 스크립트도 더 무거워진다. 이 때, 색상변환에 필요한 코드를 함수로 만든다면 코드 입력을 효율적으로 할 수 있다. private static void ShowHighlightedText(string text) { Console.Foregroun.. 2023. 11. 13.