[TIL] 12일차 - TextRPG 팀 과제

김유원·2024년 1월 9일
0

📝24.01.09

이번주 발제는 TextRPG를 팀 과제로 발전시키는 것이었다.

지금까지는 내가 모든 코드를 다 숙지하고 있었고, 내 스타일대로 구현해왔다. 그래서 막히는 부분이 있으면 어느 부분이든 마음껏 수정해가면서 프로젝트를 작성해왔는데, 팀 과제로 발전하니 어떤 부분은 다른 사람이 구현하고 있는 부분과 충돌할 수도 있다는 생각에 좀 더 조심스럽게 되었다.

그래서 오히려 더 코드를 객체 지향적으로 만들 수 있도록 노력하게 되었다. 내가 짠 코드에는 모든 코드에 매개변수가 있도록 모든게 연결된 형태였는데, 이번에는 최대한 분리된 형태로 만들 수 있도록 노력했다.

오늘 만든 Character를 상속한 여러 직업 클래스들 중 전사 Warrior 클래스는 다음과 같다. 가장 주요하게 생각한 것은 Skill 메서드 두개인데, Character 클래스에서 가상 메서드로 구현하여서 자식 클래스에서 재정의된 것을 호출하도록 구상한 것이 가장 주요하다. 다만 아직 전투 시스템이 어떻게 제작되고 있는지 모르겠어서 조금 조심스럽게 구현중이긴 하다.

class Warrior : Character
{
    public Warrior()
    {
        atk = 10;
        def = 5;
        hp = 100;
        mp = 50;
        job = "전사";
        f_atk = atk;
        f_def = def;
        f_hp = hp;
        f_mp = mp;
    }

    public override void Skill1(Monster monster)
    {
        //단일기
        int damage = atk * 2;
        monster.hp -= damage;
        Console.WriteLine($"알파 스트라이크!\n{monster.name}에게 {damage}만큼의 대미지를 입혔습니다.");
    }

    public virtual void Skill2(Monster[] monster)
    {
        //광역기
        int damage = (int) Math.Round(atk * 1.2);
        string names = "";
        for(int i = 0; i < monster.Length; i++)
        {
            monster[i].hp -= (int) damage;
            names += monster[i].name = " ";
        }

        Console.WriteLine($"더블 스트라이크!\n모두에게 {damage}만큼의 대미지를 입혔습니다.");
    }
}

다른 것보다 팀원들과 함께 프로젝트를 한다는 것에 익숙해지는 게 중요한 주간인 것 같아 열심히 참여할 수 있도록 노력할 것이다.

--


이외에 오늘도 알고리즘 문제 풀이도 하나 하였다.

📕 [프로그래머스] 문자열 뒤집기

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보