프로그래머스 코테 연습
긴 시간 동안 팀 회의로 컨벤션 및 클래스 설계를 진행했다.
내가 맡기로한 레벨업 기능이 플레이어로 합쳐져서 붕 떠버렸기 때문에 남는 단순한 기능인 로그 출력 기능을 맡았다.
// RpgLogger.h
#pragma once
#include <map>
#include <queue>
#include <string>
// 임시로 작성, 추후에 다른 파일에서 가져오기
namespace Test
{
enum class EMonsterID;
extern std::map<EMonsterID, std::string> convertMonsterString;
} // namespace Test
class RpgLogger
{
public:
// Queue에 쌓인 전체 로그 출력
void ShowLogs() const;
// 킬 로그 출력
void ShowKillLogs() const;
// Queue에 로그 추가(10개 까지), 해당 로그 바로 출력
void AddLog(std::string log);
// 몬스터를 처치했을 때 호출, 킬카운트 증가
void OnMonsterKilled(Test::EMonsterID id);
private:
static constexpr size_t MAX_SIZE = 10;
std::queue<std::string> logs;
std::map<Test::EMonsterID, int> killCounts;
};
void TestRpgLogger();
