🐧 들어가기 앞서

개인 과제가 발제 됐다.

열심히 제작은 해봤는데, 생각보다 진전이 없다.

먼저 게임의 큰 틀을 생각하고 구성한 뒤, 제작해야지

너무 기능 추가를 위주로 주먹구구식 개발하니 점점 코드가 길어진다.

내일 다시 해봐야겠다.

🐧 스파르타 던전 구현

필수 요구 사항

  1. 게임 시작 화면
  2. 상태 보기
  3. 인벤 토리
    까지 완료했지만, 다시 해봐야겠다!

🐧 오늘 배운 것

사용자의 입력을 여러번 불러올 때

static int CheckValidAction(int _min, int _max)
        {
            while (true)
            {
                string _action = Console.ReadLine();

                bool _parseSuccess = int.TryParse(_action, out var _ret);
                if (_parseSuccess)
                {
                    if (_ret >= _min && _ret <= _max)
                        return _ret;
                }

                Console.WriteLine("잘못된 입력입니다.");
            }
        }
  • 스파르타코딩클럽 내일배움캠프의 튜터님께서 구현하신 코드의 한 부분입니다.
  1. while (true) 루프를 사용하여 무한히 반복. 사용자로부터 유효한 입력을 받을 때까지 반복.
  2. string _action = Console.ReadLine(); 코드를 통해 사용자로부터 문자열 형태의 입력을 받는다.
  3. int.TryParse(_action, out var _ret)을 사용하여 입력된 문자열을 정수로 변환. 변환에 성공하면 _ret 변수에 변환된 값을 저장하고 _parseSuccess를 true로 설정한다.
  4. 변환된 값인 _ret가 _min과 _max 사이에 있는지 검. 만약 그렇다면 _ret 값을 반환하고 함수를 종료.
  5. 만약 입력이 올바르지 않은 경우나 범위를 벗어난 경우, Console.WriteLine("잘못된 입력입니다.");를 출력.
  6. 루프는 계속 반복하여 사용자가 유효한 입력을 제공할 때까지 다시 입력을 받는다.

콘솔 게임에서 사용자의 입력을 굉장히 많이 받는다.

여러번 잘못된 입력값을 검사할 때, 계속해서 잘못된 케이스를 만들어 줘야했다.

예를 들어 각 진입점 마다 입력과 예외처리를 해야했는데,

입력과 예외처리에 대한 작업을 메서드로 구현하면

굉장히 쉽게 각 케이스만 설정하면 됐다.

튜터님의 샘플 코드 덕분에 새로운 방법을 찾았다.

혁신이다.

🐧 내일 할 일

처음부터 로직을 어떻게 구현할지 생각하고 정리해야겠다.

기능 추가를 위한 개발식이라 점점 꼬인다.

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

정보 감사합니다.

답글 달기