오늘는 스파르타 코딩 클럽 unity 게임 개발 과정 14일차(팀과제와 열거형 설명)

2023. 11. 17. 02:03스파르타코딩클럽 게임개발

반응형

열거형(Enumeration)이란?

C#에서 열거형(Enumeration)은 여러 개의 이름이 지정된 상수를 하나의 형식으로 묶어서 나타내는 방법.

간단히 말해, 특정 값을 가지는 상수들의 집합체로 사용된다.

열거형은 가독성을 높이고 프로그램의 유지보수성을 향상시키는 데에 도움된다.

아래는 열거형을 사용한 간단한 예제 코드다.

// 열거형 정의: 요일을 표현하는 Enum
public enum Day
{
    Sunday,    // 0
    Monday,    // 1
    Tuesday,   // 2
    Wednesday, // 3
    Thursday,  // 4
    Friday,    // 5
    Saturday   // 6
}

class Program
{
    static void Main()
    {
        // 열거형 사용 예제
        Day today = Day.Wednesday;

        // Switch 문을 통한 열거형 값에 따른 처리
        switch (today)
        {
            case Day.Sunday:
                Console.WriteLine("일요일입니다.");
                break;
            case Day.Monday:
                Console.WriteLine("월요일입니다.");
                break;
            case Day.Wednesday:
                Console.WriteLine("수요일입니다.");
                break;
            default:
                Console.WriteLine("다른 요일입니다.");
                break;
        }
    }
}

이 코드에서는 Day 열거형을 정의하여 일주일의 요일을 표현하고, today 변수를 사용하여 현재 요일을 나타낸다. switch 문을 통해 특정 요일에 따라 다른 처리를 할 수 있다.

이를 통해 코드의 가독성을 높이고, 각 요일을 명확하게 표현할 수 있다.

 

아래는 열거형을 사용하여 캐릭터에 속성과 직업을 넣는 모습이다.

현재는 테스트를 위해 생성자로 생성하는법 메서드로 생성하는법 두가지를 모두 구현한 상태다.  

// 직업을 나타내는 열거형
public enum Job
{
    Guardian,
    Wizard,
    Ranger,
    Priest
}

// 종족을 나타내는 열거형
public enum Species
{
    Goblin,
    Gargoyle,
    Kobold,
    Dragon
}

// 프로그램 진입점 클래스
class Program
{
    static void Main()
    {
        // 캐릭터를 생성하고 게임 데이터에 추가하여 출력 목록에 추가
        Character character = new Character("ㅇㅇ", 100, 100, 100, 100, 100, 200, Job.Guardian, 10, 10, Attribute.Wind);
        character.Add(new Character("ㅇㅇ", 100, 100, 100, 100, 100, 200, Job.Guardian, 10, 10, Attribute.Wind));

        // 몬스터를 생성하고 게임 데이터에 추가하여 출력 목록에 추가
        Monster monster = new Monster("Test", 1, 1, 1, 1, 1, 1, Species.Goblin, 1, 1, Attribute.Pung);
        monster.Add(new Monster("Test", 1, 1, 1, 1, 1, 1, Species.Goblin, 1, 1, Attribute.Wind));

        // 전투 이벤트 생성 및 캐릭터, 몬스터 전달
        BattleEvent battleEvent = new BattleEvent(character, monster);

        // 화면 관리자 생성 및 캐릭터, 전투 이벤트 전달
        ScreenManager screenManager = new ScreenManager(character, battleEvent);

        // 메인 화면 표시
        screenManager.ShowMainScreen();
    }
}

 

 

반응형