C# 스크립트를 이용해 콘솔 RPG 게임 만들기
텍스트 색상 변경 함수
콘솔을 실행했을 때 WriteLine 단위로 색상을 변경하기 위해 보통 아래와 같은 코드를 사용한다.
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("1. 인벤토리");
Console.ResetColor();
만약 RPG 게임처럼 매 장면마다 색상 변환이 필요한 상황에서
위와 같은 코드를 계속 사용하는 것은 개발자도 불편하고, 스크립트도 더 무거워진다.
이 때, 색상변환에 필요한 코드를 함수로 만든다면 코드 입력을 효율적으로 할 수 있다.
private static void ShowHighlightedText(string text)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(text);
Console.ResetColor();
}
ShowHighlightedText("1. 인벤토리");
이제 이렇게 한 줄로 텍스트 색을 변경할 수 있다.
CheckValidInput 으로 input 구별하기
Input 값을 받아 다음 명령을 수행하는 콘솔 RPG에서는 유저의 input 값이 정확해야 할 필요가 있다.
이 때 input이 정확하지 않으면 게임이 종료될 수 있다.
따라서 범위 내에 존재하지 않는 input의 경우 "잘못된 입력입니다." 를 출력함으로써
게임 종료를 방지하고 유저에게 올바른 값을 입력하도록 유도할 수 있다.
static int CheckValidInput(int min, int max)
{
while (true)
{
string input = Console.ReadLine();
bool parseSuccess = int.TryParse(input, out var ret);
if (parseSuccess)
{
if (ret >= min && ret <= max)
return ret;
}
Console.WriteLine("잘못된 입력입니다.");
}
}
CheckValidInput을 정의했다면
콘솔의 각 장면 메서드마다 switch 또는 if / else 문을 활용하면서 input에 따른 장면 전환을 할 수 있다.
int input = CheckValidInput(1, 3);
switch (input)
{
case 1:
DisplayMyInfo();
break;
case 2:
DisplayInventory();
break;
case 3:
DisplayShop();
break;
}
오늘의 회고
C# 문법 기초 2주차가 시작됐다.
오늘은 개인과제 제출 전 팀원들끼리 진행 상황을 공유하고 서로 코드를 공유하며 개선방법에 대해 토의했다.
나는 주말에 겨우 필수항목까지 완성시켰는데, 팀원들은 선택사항도 추가하고 코드도 깔끔하게 정리했었다.
팀원들의 코드를 보며 처음부터 코드 구조를 단정하게 잡고 시작하는 게 좋다는 것을 알게 되었다.
팀 과제에 앞서 팀원들의 코드 진행방식을 이해하는 게 필요하다고 느꼈다.
프로젝트의 좋은 서포터가 되기 위해서 아직 공부가 더 필요하다!!
개인 과제 개선이 막히면 코드 이해를 위해 microsoft의 C# 설명서를 읽어야겠다.
오늘 과제 개선 작업 중에 아이템 상점을 만들고 구매하는 것까지는 완성시켰다.
내일은 장비 판매, 아이템 정렬 부분에 손을 대야겠다.
'게임 개발 일지 > 내일배움캠프 TIL' 카테고리의 다른 글
Sort 사용하기 / DFS 와 BFS의 차이 (0) | 2023.11.15 |
---|---|
Delegate를 이용한 CallBack 함수 만들기 / LINQ 사용법 (0) | 2023.11.14 |
TextRPG - 인벤토리 생성 (0) | 2023.11.10 |
같은 스크립트에서 하나의 솔루션만 작동시키기 (1) | 2023.11.09 |
C# 콘솔 - Snake 게임 만들기 (0) | 2023.11.08 |
댓글