[TIL] 7일차 - 텍스트 RPG 만들기 시작

김유원·2024년 1월 2일
0

📝 24.01.02

2024년이 밝았다. 어색하게 연도를 기입해보았다. 아직은 2023이라고 쓰는 쪽이 더 익숙하지만 여느때와 같이 2024라는 숫자와 정이 드는 순간이 올 것이라고 생각한다.

2024년이 밝았지만 내가 해야하는 일이 달라지지는 않았다. 여전히 내일배움캠프의 C# 특강을 듣고 좀 더 좋은 개발자가 되기 위한 공부를 해야한다. 그래서 오늘도 열심히 공부해보았다.

1. 정렬 알고리즘 정리

오늘은 5주차(알고리즘 공부)에 해당하는 수업까지 수업 내용은 전부 훑어 보았다. 대부분 알던 내용이지만 천천히 머릿 속에 있는 것을 정리해보며 되새기기 위해 포스트를 작성하였다.

🔗https://velog.io/@purangi_code/TIL-7일차-알고리즘-정리

사실 대부분 C++로 공부하던 것들이라 C#으로 치면 새롭게 배운 내용이긴 하다. 하지만 기본적인 로직을 알고 있기 때문에 구현이 어렵지 않았다. 마지막에 적혀있듯 C#에서는 sort 함수를 대부분 사용하다보니 프로젝트에서 쓸 일은 거의 없을 것 같다. 단순 공부용으로 써보았다.

2. 텍스트 RPG 과제 시작하기

아침 시간(9시 ~ 1시)에는 위의 알고리즘 강의를 수강하였고 점심 후 오후(3시 ~ 6시)에는 위의 내용을 정리하고 다시 4주차의 인터페이스 관련 강의를 복습하였다. 이 부분도 정리해서 글을 쓰고 싶었는데 하루에 정리글만 쓰고 있자니 온몸이 근질근질하여 그만두었다. (해당 정리글은 내일이나 내일 모레쯤 완성하면 올릴 예정이다.) 그래서 저녁 시간에는 이번주 과제인 텍스트 RPG 만들기를 시작하였다.

필수 요구 사항만을 구현하는 것은 재미없을 것 같아 시작부터 조금씩 대사를 수정하고, 일 진행 순서도 조금씩 바꾸어 나갈 것 같다.

그래서 일단 오늘 작업한 도입부를 첨부하겠다.

int command = 0;
//게임 시작 화면
Console.WriteLine("스파르타 마을에 오신 용사님, 환영합니다.");
while(true)
{
    Console.WriteLine("당신의 이름은 무엇입니까?");
    string name = Console.ReadLine();
    Console.WriteLine("\n '{0}' 이 당신의 이름이 맞습니까?\n", name);
    Console.WriteLine("1. 맞습니다.");
    Console.WriteLine("2. 아닙니다.\n");
    string ans = Console.ReadLine();

    if (ans == "1") break;
    else
    {
        Console.WriteLine("이름은 바꿀 수 없으니 신중히 입력하십시오.\n");
        continue;
    }
}

Console.WriteLine("이곳에서 던전으로 들어가기전 활동을 할 수 있습니다.\n");

Console.WriteLine("1. 상태 보기");
Console.WriteLine("2. 인벤토리");
Console.WriteLine("3. 상점\n");

while(true)
{
    Console.WriteLine("원하시는 행동을 입력해주세요.");
    if (int.TryParse(Console.ReadLine(), out command))
    {
        if (command == 1)
        {
            //상태보기
            break;
        }
        else if (command == 2)
        {
            //인벤토리
            break;
        }
        else if (command == 3)
        {
            //상점
            break;
        }
        else
        {
            Console.WriteLine("잘못된 입력입니다. 1에서 3사이의 숫자를 입력하세요.\n");
            continue;
        }
    }
}

위의 코드는 Main 클래스만 첨부한 것이다. Character 인터페이스와 Warrior 클래스, 그리고 Warrior 클래스의 ShowStatus 함수 등도 구현하였으나, 후에 사용하는 부분이 나오면 첨부하도록 하겠다.

참고로 입력 부분과 아래 입력 부분의 커맨드 입력 형식이 각각 int와 string으로 다르게 되어 있는 것은 아직 둘 중에 어떤 것이 더 유용할 지 모르겠어서 고민 중에 있다. 어느 쪽이든 한 방향으로 통일할 예정이다.

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보