코딩

CH2 개인과제 1번 상태창 구현(1)

story98138 2026. 3. 4. 18:21

오늘은 개인과제 1번 상태창 구현에서 "스탯 상자 만들기"와 "깐깐한 입력 검사" 까지 코드를 짜보았습니다.

Status_Main.cpp

 

<천천히 읽기>

1. 전역 설정 및 함수 정의

  • 라이브러리 포함 및 네임스페이스: iostream을 포함하고 std 네임스페이스를 사용하여 입출력 도구(cout, cin)를 준비합니다.
  • setPotion 함수: 세 개의 매개변수(count, p_HPPotion, p_MPotion)를 받습니다.
    // 다음에 작성할 포션시스템을 위해 미리 작성.
    • 포인터를 사용하여 전달받은 주소의 값을 count 값으로 직접 변경합니다.

2. main 함수: 변수 초기화

  • 배열 선언: status[4] 배열을 만들고 모두 0으로 초기화합니다.
    • status[0]: HP
    • status[1]: MP
    • status[2]: 공격력
    • status[3]: 방어력
  • 일반 변수: 포션 개수를 저장할 HPPotion, MPotion을 0으로 초기화합니다.

3. 첫 번째 반복문: HP와 MP 입력 (do-while)

do-while문은 **"먼저 실행하고, 나중에 조건을 체크"**합니다. 즉, 최소 한 번은 무조건 실행됩니다.

  1. 실행: "HP와 MP를 입력하세요 (각 50 초과):" 문구를 출력합니다.
  2. 입력: 사용자가 두 숫자를 입력하면 status[0]과 status[1]에 저장합니다.
  3. 검사 (if): 만약 둘 중 하나라도 50 이하(<= 50)라면 "50이하로 입력이 불가합니다. 다시 입력하세요."라는 경고를 띄웁니다.
  4. 조건 체크 (while): status[0] <= 50 || status[1] <= 50 조건이 이면 다시 1번으로 돌아가 반복합니다.
    • 예: HP에 40을 입력하면 조건이 참이 되어 다시 입력창이 뜹니다.

4. 두 번째 반복문: 공격력과 방어력 입력

  1. 실행: "공격력과 방어력을 입력하세요.(각 0 초과)" 문구를 출력합니다.
  2. 입력: 사용자가 입력한 값을 status[2]와 status[3]에 저장합니다.
  3. 검사 (if): 둘 중 하나라도 0 이하(<= 0)라면 경고 메시지를 출력합니다.
  4. 조건 체크 (while): status[2] <= 0 || status[3] <= 0 조건이 인 동안 계속 반복합니다.