maxHp와 하드코딩 피하기

Jaemyeong Lee·2024년 12월 8일

게임 서버1

목록 보기
9/220

이번 Step에서 잡아야 할 것

  • 하드코딩(magic number): 의미가 숨어 있는 숫자를 코드에 직접 박는 것
  • 기준값 분리: maxHp처럼 “의미 있는 이름”을 가진 값으로 한 번만 정의
  • 상수화(const/constexpr): 변하지 않는 기준값은 실수 방지를 위해 고정

maxHp(기준값) 만들기

최대 HP가 “게임 규칙”이라면, 먼저 그 값을 이름으로 분리합니다.

int maxHp = 200;   // 최대 HP (기준값)
int hp = 50;       // 현재 HP

만약 maxHp가 “절대 변하지 않는 값”이라면 상수로 고정하는 게 더 안전합니다.

const int maxHp = 200;
// 또는 (컴파일 타임 상수)
// constexpr int maxHp = 200;

HP를 최대 체력으로 복구하기 (하드코딩 제거)

  • 나쁜 예(하드코딩): hp = 100;
    • maxHp가 200으로 바뀌면, 이런 곳들을 전부 찾아 고쳐야 합니다.
  • 좋은 예(기준값 사용): hp = maxHp;
    • maxHp만 바꾸면, “최대치로 회복” 로직이 자동으로 맞춰집니다.
hp = maxHp;   // 최대치로 회복

체크 질문 (스스로 답해보기)

  • hp = 100;이 왜 위험한가? (maxHp가 바뀌는 상황을 떠올려보기)
  • “기준값을 이름으로 분리”하면, 어떤 종류의 버그가 줄어들까?
  • const/constexpr를 쓰면 어떤 실수를 막을 수 있을까?

profile
李家네_공부방

0개의 댓글