ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] 2주차 5일 개인 프로젝트 수정과 반성 ( 클래스 활용, enum 열거형 )
    개발일지/스파르타 코딩클럽 부트캠프 2024. 4. 26. 20:56

    오늘 일정

     

    • 개인프로젝트 튜터님 해설영상 보며 따라 코딩해보기
    • 내 프로젝트에 어떤 식으로 적용 시킬 수 있는지 보기
    • 튜터님 학습법 특강듣기
    • C#문법 3주차 과제

    오늘 배운 내용

     

    Class를 어떻게 활용하는지

     

    아 이번 해설영상을 보면서 확실히 나는 클래스를 활용하지 못했구나

    객체지향을 못했구나라는 걸 제대로 느끼면서

    배운 점이 많았다.

     

    일단 클래스를 활용하는 것에 앞서서 객체지향을 제대로 하려면

    어느정도 설계를 하고 시작하는게 매우 중요한 거 같은데

    설계를 어느정도 하고 들어가면 뭔가 코드를 짜기전에

    먼저 클래스를 몇개 만들 지 라던가 어느정도 미리 짜놓고 시작하는게

    정말 그 프로젝트를 작업하는데에 있어서 정말 도움이 많이 되는 거 같다.

     

    일단 이번 텍스트 RPG를 기준으로 말해보자면

    클래스 사용이 중요한 점은

    일단 개별 변수로 저장을 하는 것 보다 Item, Player 등을 클래스로 저장하면

    후에 전체적인 게임을 만드는데 있어서 훨씬 편리하고 실수가 적으며 유지보수도 쉽다.

     

    콘솔 글자색 변경 및 리셋

     

    아 이건 좀 궁금한 부분이긴했는데 기능 구현도 다 못해가지고

    아직 따로 찾아보진 않고 있었는데

    콘솔도 나름대로 이쁘게(?) 꾸밀 수 있다는 걸 알았다.

     

    public static void PrintTextHighlight(string s1, string s2, string s3 = "")
    {
        Console.Write(s1);
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine(s2);
        Console.ResetColor ();
        Console.WriteLine(s3);
    }

    여기 Console.ForegroungColor 라는 함수는 말 그대로 글자의 색을 바꿔주는 함수다.

    내가 이 코드를 가져온 이유는 생각지도 못한 코드라서 그렇다.

     

    대충 해설을 해보자면 이제 여긴 Consoleutility 클래스인데

    다른 클래스에서 PrintTextHighlight 를 가져다가 쓰면

    string s1은 그냥 써지고 s2만 노란 색으로, 그 후 리셋시키고 s3도 그냥 써지는 메서드를 만든거다.

     

    예를 들어

    ConsoleUtility.PrintTextHighlight("Gold :", player.Gold.ToString());

    위 코드의 경우

    이런 식으로 숫자에만 노란 색이 들어간 모습을 볼 수 있다.

     

    enum 열거형에 대해서

     

    어 원래 이건 이제 곧 배우는데 내가 아직 3주차 과제를 못 끝내서.. 못배우고 있었다.

    근데 이번 튜터님의 해설영상에서 나오게 되었는데

     

    enum 열거형은 쉽게 말해서

    숫자에 이름을 붙여서 가독성을 높이는 문법이라고 하셨다.

    예를 들어서, 32를 글자 A라고 읽는다고 하면

    if(key == 32)보다 if(key == Key.A) 처럼 작성하면 더 편하겠죠? 라고 하셨는데

    확실히 수가 많아질수록 편해질 거 같다.

     

    이번에는 enum은

    public enum ItemType
    {
        WEAPON,
        ARMOR
    }

    아이템 클래스 밖에 써주었는데

    아이템타입에 대해 쉽게말해 WEAPON은 0, ARMOR는 1이다.

    숫자에 이름을 붙여준 느낌

     

     

     

    이 밖에 배운점이 많은데

    아직 프로젝트도 정리중에 있어서

    계속 이어서 써야할 것 같다..

     

Designed by Tistory.