프로젝트 일지/C#

[C#/TIL] TextRPG 팀 프로젝트 일지

톰마토 2025. 2. 10. 21:19
728x90

[던전 9조대] 팀 오늘 한 일

마무리 작업 확인 후 dev 브랜치 main으로 첫 배포.

간단한 테스트 후 main에 올린채로 버그 수정과 도전 기능 추가 작업을 역할 분장하여 동시에 시작하기로 했다.

발견된 버그 리스트

2차 역할 분담

전에 정리해둔 도전 기능 리스트를 기반으로 클래스 별도 추가 없이 만들 수 있는 기능 위주로 묶어 역할을 나눴다. 나는 마지막으로 남은 역할을 받아 진행하였다. 

역할 묶어서 나눠 가짐

시작화면에서 캐릭터 이름, 직업 입력받기

플레이어가 새로 시작하거나 체력이 0이 되어 태초마을로 돌아온 경우 이름과 직업을 입력하고 다시 시작하도록 추가했다.

이름이 없으면 새로 생성한 것이고, 체력이 0이면 태초마을로 돌아온 경우로 판단하였다. 

새로 생성, 태초마을 분별 조건문

NewGame() 함수에서는 플레이어의 이름을 입력받고 저장, 직업을 선택하고 직업에 맞는 초기 설정값을 가지고 저장한다.

더보기

/// <summary>
/// 새로 시작하는 Character의 이름과 직업을 입력받는 함수 
/// </summary>
private void NewGame()
{
    Utility.ClearScene();
    string nameInput;
    EJobType jobType;
    // 이름 설정
    while (true)
    {
        Utility.ClearAll();
        Utility.PrintScene("[ Dun9eon & Fi9ht - 새로 시작 ]");
        Utility.PrintScene("원하시는 이름을 설정해주세요.");
        Utility.PrintMenu("이름을 입력하세요.\n>>");
        nameInput = Console.ReadLine();
        Utility.PrintScene($"입력하신 이름은 '{nameInput}'입니다. 저장하시겠습니까?");


        bool isSaved = false;
        while(true)
        {
            Utility.ClearMenu();
            Utility.PrintMenu("1. 저장\n2. 다시 입력");
            Utility.PrintMenu("원하시는 행동을 입력해주세요.\n>>");
            int command = Utility.UserInput(1, 2);
            if (command == 1)
            {
                isSaved = true;
                break;
            }
            else if (command == 2) break;
            else
            {
                Utility.ClearMenu();
                Utility.PrintMenu("잘못된 입력입니다.");
                Utility.PrintMenu("아무 키나 입력\n>>");
                Console.ReadLine();
            }
        }
        if (isSaved) break;
        else continue;
    }

    // 직업 선택
    while (true)
    {
        Utility.ClearAll();
        Utility.PrintScene("원하시는 직업을 선택해주세요.");
        Utility.PrintScene("1. Warrior\n2. Mage\n3. Rogue");
        Utility.PrintMenu("직업을 선택하세요.\n>>");
        int jobInput = Utility.UserInput(1, 3) - 1;
        if (jobInput < 0)
        {
            Utility.ClearMenu();
            Utility.PrintMenu("잘못된 입력입니다.");
            Utility.PrintMenu("아무 키나 입력\n>>");
            Console.ReadLine();
            continue;
        }
        jobType = (EJobType)jobInput;
        Utility.PrintScene($"선택하신 직업은 '{jobType.ToString()}'입니다. 저장하시겠습니까?");

        bool isSaved = false;
        while (true)
        {
            Utility.ClearMenu();
            Utility.PrintMenu("1. 저장\n2. 다시 입력");
            Utility.PrintMenu("원하시는 행동을 입력해주세요.\n>>");
            int command = Utility.UserInput(1, 2);
            if (command == 1)
            {
                App.Program.SetPlayer(jobInput);
                isSaved = true;
                break;
            }
            else if (command == 2) break;
            else
            {
                Utility.ClearMenu();
                Utility.PrintMenu("잘못된 입력입니다.");
                Utility.PrintMenu("아무 키나 입력\n>>");
                Console.ReadLine();
            }
        }
        if (isSaved) break;
        else continue;
    }

    GameManager.Instance.Player.Name = nameInput;
    GameManager.Instance.Player.Job = jobType;

    Utility.ClearScene();
    Utility.ClearMenu();
}

728x90