A. 제어문
1. 조건문
a. if / else / else if
💙 else if가 생성되는 모습
코드는 한줄이게되면 {}을 생략할 수 있음.
이때 위 코드는 if / else문으로 전체가 한 줄로 취급되어
전체 코드를 위로 올리면
이렇게 됨!
b. switch case
가독성이 좋아서 if문보다 더 권장
2. 반복문
a. while / do-while / for
어딘가에서 게임이 끝나지 않게 해주는 역할을 함
💙 for / while 문의 차이점
가독성
사용빈도는 for가 90%정도 더 많음
do-while은 거의 사용하지 않음
b. break
제어문에서 루프를 빠져나오고싶을 때 사용 (단일 루프만 빠져나옴)
c. continue
아래 코드를 실행시키지 않고 다음 조건을 판별하는 곳으로 이동
while문에서는 조건문 위치를 조심해야 함!
B. 연습문제
1. 별찍기
a. 문제
별을 입력받고 N*N을 출력하시오
b. 코드
🎈 정답
#include <iostream>
using namespace std;
//별찍기
int main()
{
int N;
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << "*";
}
cout << endl;
}
}
2. 구구단
a. 문제
2단부터 9단까지 출력하는 코드를 작성하세요
b. 코드
🎈 정답
#include <iostream>
using namespace std;
int main()
{
for (int i = 2; i <= 9; i++) {
for (int j = 1; j < 9; j++) {
cout << i << " * " << j << " = " << i * j << endl;
}
cout << endl;
}
}
3. 간단한 전투
a. 문제
라운드마다 데미지를 입은 몬스터의 체력을 출력하고
5 라운드 안에 몬스터를 처치하면 처치, 실패하면 라운드 종료를 출력
b. 코드
🎈 정답
#include <iostream>
using namespace std;
//별찍기
int main()
{
int round = 1;
int hp = 100;
int damage = 20;
while (true) {
hp -= damage;
if (hp < 0) {
hp = 0;
}
cout << "Round: " << round << " 몬스터 체력: " << hp << endl;
if (hp == 0) {
cout << "몬스터 처치" << endl;
break;
}
if (round == 5) {
cout << "제한 라운드 종료" << endl;
break;
}
round++;
}
}
4. 가위 - 바위 - 보
a. 문제
유저에게 0, 1, 2를 입력받아 컴퓨터의 랜덤값과 싸워 승부를 겨루는 게임을 작성하시오
b. 코드
🎈 정답
#include <iostream>
using namespace std;
enum ENUM_GBB
{
GBB_SCISSORS = 0,
GBB_ROCK =1,
GBB_PAPER = 2,
};
#define DEF_SISSORS 0 // 여기까지는 거의 사용하지 않음
//전처리 단계에서 컴파일러에게 바꿔치기 해달라고 하는것만 기억
int main()
{
srand(time(0));
while (true) {
cout << "가위(0) 바위(1) 보(2) 골라주세요!";
cout << "> ";
// 사용자
int value;
cin >> value;
//컴퓨터
int computerValue = rand() % 3;
if (value == GBB_SCISSORS) { //가위
switch (computerValue) {
case GBB_SCISSORS:
cout << "가위(Player) vs 가위(Computer) : 비겼습니다!" << endl;
break;
case GBB_ROCK:
cout << "가위(Player) vs 바위(Computer) : 졌습니다!" << endl;
break;
case GBB_PAPER:
cout << "가위(Player) vs 보(Computer) : 이겼습니다!" << endl;
break;
default :
break;
}
}
else if (value == 1) {
switch (computerValue) {
case GBB_SCISSORS:
cout << "바위(Player) vs 가위(Computer) : 이겼습니다!" << endl;
break;
case GBB_ROCK:
cout << "바위(Player) vs 바위(Computer) : 비겼습니다!" << endl;
break;
case GBB_PAPER:
cout << "바위(Player) vs 보(Computer) : 졌습니다!" << endl;
break;
default:
break;
}
}else {
switch (computerValue) {
case GBB_SCISSORS:
cout << "보(Player) vs 가위(Computer) : 졌습니다!" << endl;
break;
case GBB_ROCK:
cout << "보(Player) vs 바위Computer) : 이겼습니다!" << endl;
break;
case GBB_PAPER:
cout << "보(Player) vs 보(Computer) : 비겼습니다!" << endl;
break;
default:
break;
}
}
}
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] 함수와 디버깅 : 함수, 변수의 범위 (12강) (0) | 2023.09.05 |
---|---|
C++ 제어문 총정리 (0) | 2023.09.05 |
C++ 연산자 총정리 (0) | 2023.09.05 |
[게임 프로그래머 입문 올인원] 데이터와 로직 : 연산 (6, 7강) (4) | 2023.09.05 |
C++ 자료형의 타입 변환 (0) | 2023.09.05 |