1. Day25

  • 알고리즘 코드카타
  • 과제 6: [CH2: 팀 프로젝트] 텍스트 콘솔 RPG

2. C++ 문법 학습(Day25)

  • 알고리즘 코드카타
    • 짝수와 홀수, 평균 구하기
  • 과제 6 : [CH2: 팀 프로젝트] 텍스트 콘솔 RPG(Item 관련 클래스)

3. 과제 6 : [CH2: 팀 프로젝트] 텍스트 콘솔 RPG(Item 관련 클래스) 코드리뷰 및 회의

  • 오전 회의 Git 워크플로우 논의
  • 오후 회의 보스 몬스터 및 상점 시스템

4. 내일 계획 : 팀프로젝트 회의 및 역할 분담

1. Day24

  • 알고리즘 코드카타
  • 과제 6: [CH2: 팀 프로젝트] 텍스트 콘솔 RPG

2. C++ 문법 학습(Day24)

  • 알고리즘 코드카타
    • 짝수의 합, 배열의 평균값
  • 과제 6 : [CH2: 팀 프로젝트] 텍스트 콘솔 RPG(Item 관련 클래스)
  • Item.h(추상 클래스)
#pragma once
#include <string>
#include "Database.h"

class Player;

using namespace std;

class Item {
    /*
    1. 아이템들(자식)의 갯수는 Player 클래스의 아이템자료형 백터에 쌓일 것 
    2. 0번 인덱스 == HealthPotion, 1번인덱스 == AttackBoost
    3. 첫 획득 시 생성자로 동적할당 그 다음부터 해당인덱스가 nullptr이 아니라면 Item획득 함수에서 게터와 세터를 활용 ++
    4. HeathPotion같은경우 전투종료와 상관이없지만 AttackBoost같은 경우 아이템 사용으로 증가한 전투력을 전투 종료시점에 초기화 필요
    5. 가능하다면 Player.h에 멤버변수로 increaseAttack 같은 추가 공격력 변수를 만들어 활용
    6. AttackBoost의 증가부분은 Player increaseAttack변수를 게터와 세터로 접근해 증가시키고 전투 종료시 초기화하는 방향으로
    */
public:
    // 어차피 자식클래스들에서 멤버변수와 함수를 각자 다르게 할 예정
    // 가상함수 선언 + 소멸자만 선언
    // getter 함수
    virtual string GetName() const = 0;
    virtual int GetCount() const = 0;
    // setter 함수
    virtual int SetCount(int InCount) = 0;
    // Use(Character* pl)
    virtual void Use(Player* InPlayer) = 0;
    // 소멸자
    virtual ~Item() = default;
};
  • AttackBoost.h/cpp
#pragma once
#include "Item.h"


using namespace std;

class AttackBoost : public Item {
private:
    string name;
    int attackIncrease;
    // Item* 백터의 0번에 HealthPotion, 1번에 AttackBoost를 지정해서 쓴다면 갯수 변수가 필요
    int count = 0;
public:
    // Item* 백터의 0번이 nullptr이라면 획득과 동시에 갯수 1개 와 기본 아이템 정보 입력
    // nullptr이 아니라면 획득 -> GetCount로 현재 갯수 불러와서 + 1 한다음 SetCount에 넣어주도록
    AttackBoost() : name("AttackBoost"), attackIncrease(ITEM_BUFFDAMAGE_VALUE), count(1) {}
    // getter함수
    string GetName() const override { return name; }
    int GetCount() const { return count; }
    // setter 함수
    // 아이템 갯수 변동 시 GetCount에 변동 갯수를 반영해 SetCount로 수정
    // count를 return 획득한 후의 물약 갯수 출력
    int SetCount(int InCount) override {
        count = InCount;
        return count;
    }
    // 물약 사용
    void Use(Player* InPlayer) override;
};

#include "AttackBoost.h"
#include <iostream>

using namespace std;

void AttackBoost::Use(Player* InPlayer)
{
    // 예외사항으로 물약이 없다면 수량부족 문구와 같이 return
    if (GetCount() <= 0)
    {
        return;
    }
    else
    {
        SetCount(GetCount() - 1);
    }

    // 임시 변수값 -> 플레이어의 현재 추가 공격력 + attackIncrease을 게터와 attackIncrease의 합으로 임시 변수값에 저장
    //int newExtraAttack = InPlayer->getExtraAttack() + attackIncrease;
    // 플레이어의 ExtraAttack변수에 세터로 newAttack으로 변경
    //InPlayer->setExtraAttack(newExtraAttack);
}
  • HealthPotion.h/cpp
#pragma once
#include "Item.h"

using namespace std;

class HealthPotion : public Item {
private:
    string name;
    int healthRestore;
    // Item* 백터의 0번에 HealthPotion, 1번에 AttackBoost를 지정해서 쓴다면 갯수 변수가 필요
    int count = 0;
public:
    // Item* 백터의 0번이 nullptr이라면 획득과 동시에 갯수 1개 와 기본 아이템 정보 입력
    // nullptr이 아니라면 획득 -> GetCount로 현재 갯수 불러와서 + 1 한다음 SetCount에 넣어주도록
    HealthPotion() : name("HealthPotion"), healthRestore(ITEM_HEALING_VALUE), count(1) {}
    // Getter 함수
    string GetName() const override { return name; }
    int GetCount() const { return count; }
    // setter 함수
    // 아이템 갯수 변동 시 GetCount에 변동 갯수를 반영해 SetCount로 수정
    // count를 return 획득한 후의 물약 갯수 출력
    int SetCount(int InCount) override { 
        count = InCount; 
        return count;
    }
    void Use(Player* InPlayer) override;
};

3. 과제 6 : [CH2: 팀 프로젝트] 텍스트 콘솔 RPG(Item 관련 클래스) 코드리뷰 및 회의

  • 작성된 담당 파트 코드리뷰 및 팀프로젝트 회의 진행
  • 코드 통합 및 테스트

4. 다음 계획 : 필수 기능 코드 검토 및 도전 기능 준비

1. Day23

  • 알고리즘 코드카타
  • 과제 6: [CH2: 팀 프로젝트] 텍스트 콘솔 RPG 발제
  • 깃헙 협업 세션

2. C++ 문법 학습(Day23)

  • 알고리즘 코드카타
    • 각도기
  • 과제 6: [CH2: 팀 프로젝트] 텍스트 콘솔 RPG
    • 기본 코드 프레임 및 깃헙 협업 관련 회의

3. 깃 협업 관련 세션

  • 과제 6 팀장 및 부팀장 깃헙 협업 관련 세션 진행
    • 브랜치, 풀 리퀘스트, 머지 등 기본적인 방법 세션

4. 내일 계획 : 팀프로젝트 코드 작성

+ Recent posts