Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[hye-inA] 1주차 미션 제출 #9

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

hye-inA
Copy link

@hye-inA hye-inA commented Nov 22, 2024

작업 내용

  • Character, Action 클래스 생성 및 필드 정의
classDiagram
    class Character {
        -String name
        -int healthPoint
        -int manaPoint
        -int defense
        +takeDamage(int) void
        +setDefense(int) void
        +useMana(int) void
        +isAlive() boolean
    }

    class Action {
        <<interface>>
        +execute(Character, Character) void
    }

    class AttackAction {
        -int MIN_DAMAGE
        -int MAX_DAMAGE
        -Random random
        +execute(Character, Character) void
    }

    class DefenseAction {
        -int MIN_DEFENSE
        -int MAX_DEFENSE
        -Random random
        +execute(Character, Character) void
    }

    class SkillAction {
        <<abstract>>
        #int manaCost
        #int coolTime
        #int remainingCooltime
        #Random random
        +SkillAction(manaCost, coolTime)
        +reduceCoolTime() void
        +execute(Character, Character) void
    }

    class CutTwice {
        -int MIN_DAMAGE
        -int MAX_DAMAGE
        -int MANA_COST
        -int COOL_TIME
        +CutTwice()
        +execute(Character, Character) void
    }

    class CutThreeTimes {
        -int MIN_DAMAGE
        -int MAX_DAMAGE
        -int MANA_COST
        -int COOL_TIME
        +CutThreeTimes()
        +execute(Character, Character) void
    }

    class PowerStrike {
        -int MIN_DAMAGE
        -int MAX_DAMAGE
        -int MANA_COST
        -int COOL_TIME
        +PowerStrike()
        +execute(Character, Character) void
    }

    Action <|.. AttackAction : implements
    Action <|.. DefenseAction : implements
    Action <|.. SkillAction : implements
    SkillAction <|-- CutTwice : extends
    SkillAction <|-- CutThreeTimes : extends
    SkillAction <|-- PowerStrike : extends
Loading

: Action 클래스를 인터페이스로 정의하고 구체적인 행동(공격, 방어, 스킬)을 하위클래스에서 구현하도록 설계함
: Skill 클래스는 추상클래스로 정의하고 구체적인 스킬(2번 베기, 3번 베기, 세게때리기)을 하위클래스에서 구현하도록 설계함

고려사항

게임 진행 관련(캐릭터 생성, 턴 관리, 게임종료,,) 코드들을 메인함수에 작성하게되는데, 추후 기능 확장을 대비해 따로 객체로 분리 여부를 고려해볼 필요가 있음

TODO

  • 기능 목록 설계

기능 목록

객체 기능
캐릭터 행동에 따른 체력, 마나, 데미지 감소를 받는다
- (상대방이) 공격 수행시, 받은 데미지 만큼 체력이 감소한다
- (현재캐릭터가) 방어 수행시, 랜덤한 방어력을 설정해주고 상대방에게 받는 데미지를 감소시킨다
- 스킬 사용시, 각 스킬에 따른 마나를 소모한다
행동 각 행동(공격, 방어, 스킬)을 수행한다
- 공격 : 상대방에게 랜덤한 데미지를 입힌다
- 방어 : 현재 캐릭터에게 랜덤한 방어력을 설정한다
- 스킬 : 상대방에게 각 스킬(2번 베기, 3번 베기, 세게때리기)에 따른 데미지를 입힌다

@hye-inA hye-inA changed the title Character, Action 객체 생성 1주차 미션 제출 Nov 23, 2024
@hye-inA hye-inA changed the title 1주차 미션 제출 [hye-inA] 1주차 미션 제출 Nov 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant