본문 바로가기
개발이야기/C++

C++기초 4강: 데이터타입과 기초문법 총정리

by oddsilk 2024. 12. 10.

C++ 기본 문법 

게임 캐릭터를 만들기 위한 첫걸음

 

안녕하세요! 오늘은 C++에서 가장 기초적인 부분인 기본 문법을 배워보는 시간을 가져보겠습니다. 프로그래밍 언어의 기본 문법은 건물을 짓기 위한 벽돌과 같습니다. 게임 개발에서 캐릭터를 만들고, 움직이고, 상호작용하는 모든 기능도 이런 기본 문법 위에서 작동합니다. 오늘은 이 기본 벽돌을 하나씩 쌓아 보도록 하겠습니다.


변수와 데이터 타입

변수란 무엇일까요? 변수는 데이터를 저장할 수 있는 상자와 같아요. 이 상자에 숫자, 글자, 참/거짓 같은 정보를 담을 수 있습니다. 예를 들어, 게임 캐릭터의 체력이나 이름을 저장하려면 변수라는 상자를 활용해야 합니다.

C++에서 자주 쓰는 데이터 타입

  • 정수형(int): 정수를 저장합니다. (예: 0, 100, -50)
  • 실수형(float, double): 소수점을 포함한 숫자를 저장합니다. (예: 3.14, -0.99)
  • 문자형(char): 한 글자를 저장합니다. (예: 'A', 'z')
  • 문자열(string): 여러 글자를 저장합니다. (예: "Hello", "Game")
  • 불리언(bool): 참 또는 거짓 값을 저장합니다. (예: true, false)

 

#include <iostream>
using namespace std;

int main() {
    int health = 100;            // 체력
    float speed = 3.5;           // 이동 속도
    char grade = 'A';            // 랭크
    string name = "Player1";     // 이름
    bool isAlive = true;         // 생존 여부

    cout << "Name: " << name << endl;
    cout << "Health: " << health << endl;
    cout << "Speed: " << speed << endl;
    cout << "Grade: " << grade << endl;
    cout << "Is Alive: " << isAlive << endl;

    return 0;
}

이 코드를 실행하면 캐릭터의 기본 정보를 출력합니다. 변수에 값을 저장한 후, cout을 사용해 콘솔에 출력합니다. 이렇게 하면 게임 데이터를 관리할 수 있는 첫걸음을 뗀 셈입니다.

 

 

 

입출력

게임을 만들 때 중요한 것은 플레이어와 소통하는 것입니다. C++에서는 cout을 사용해 메시지를 출력하고, cin을 사용해 입력을 받을 수 있습니다.

예시: 플레이어 이름을 입력받기

 

#include <iostream>
using namespace std;

int main() {
    string playerName;

    cout << "Enter your name: ";
    cin >> playerName;

    cout << "Welcome, " << playerName << "!" << endl;

    return 0;
}

 

이 코드를 실행하면 플레이어 이름을 입력받고 환영 메시지를 출력합니다. 게임의 초기 화면처럼 간단하죠?

 

조건문

조건문은 게임 개발에서 꼭 필요한 기능입니다. 예를 들어, 플레이어가 체력을 모두 소진했는지, 아이템을 획득했는지 등을 판단할 때 조건문을 사용합니다.

조건문의 기본 구조

if (조건) 
{
    // 조건이 참일 때 실행할 코드
} 
else 
{
    // 조건이 거짓일 때 실행할 코드
}

예시: 아이템 획득

#include <iostream>
using namespace std;

int main() 
{
    bool hasItem = true;

    if (hasItem) 
    {
        cout << "You have picked up a health potion!" << endl;
    } 
    else 
    {
        cout << "No items found." << endl;
    }

    return 0;
}

연산자

연산자는 숫자를 계산하거나 값을 비교할 때 사용됩니다. 예를 들어, 체력을 깎거나 점수를 더할 때 연산자를 사용합니다.

주요 연산자

  • 산술 연산자: +, -, *, /, %
  • 비교 연산자: ==, !=, <, >, <=, >=
  • 논리 연산자: &&, ||, !

예시: 적과의 전투

#include <iostream>
using namespace std;

int main() 
{
    int playerHealth = 100;
    int enemyDamage = 25;

    cout << "Player Health: " << playerHealth << endl;

    // 적이 공격!
    playerHealth = playerHealth - enemyDamage;

    cout << "After attack, Player Health: " << playerHealth << endl;

    if (playerHealth <= 0) 
    {
        cout << "Game Over!" << endl;
    } 
    else 
    {
        cout << "Keep fighting!" << endl;
    }

    return 0;
}

여기서 적의 공격력(enemyDamage)을 플레이어의 체력에서 빼는 과정을 보여줍니다. 체력이 0 이하로 떨어지면 "Game Over"를 출력하고, 그렇지 않으면 계속 싸우라는 메시지를 출력합니다.

 

 

반복문

반복문은 어떤 작업을 여러 번 반복하고 싶을 때 사용합니다. 예를 들어, 적을 계속 소환하거나, 특정 행동을 계속 확인하는 루프를 만들 때 유용합니다.

 

예시: 적 5명 소환하기

 
#include <iostream>
using namespace std;

int main() 
{
    for (int i = 1; i <= 5; i++) 
    {
        cout << "Enemy " << i << " spawned!" << endl;
    }

    return 0;
}

 

 

 

실무와 관련된 활용

이제 배운 개념을 활용해 게임 개발의 기초 기능을 만들어 봅시다. 예를 들어, 플레이어와 적의 체력을 계산하고, 적이 계속 공격하는 작은 전투 시스템을 만들어 보겠습니다.

예시: 간단한 전투 시스템

#include <iostream>
using namespace std;

int main() {
    int playerHealth = 100;
    int enemyDamage = 10;

    cout << "Battle Start!" << endl;

    for (int turn = 1; turn <= 10; turn++) {
        cout << "Turn " << turn << ": Enemy attacks!" << endl;
        playerHealth -= enemyDamage;

        if (playerHealth <= 0) {
            cout << "Player Health: 0" << endl;
            cout << "Game Over!" << endl;
            break;
        } else {
            cout << "Player Health: " << playerHealth << endl;
        }
    }

    if (playerHealth > 0) {
        cout << "You survived the battle!" << endl;
    }

    return 0;
}

오늘은 C++의 기본 문법에 대해 배워 보았습니다. 변수와 데이터 타입, 입출력, 연산자, 조건문, 그리고 반복문은 앞으로 게임 개발의 기초를 다지는 데 매우 중요한 요소들입니다. 이제 이 개념을 활용해 더 복잡한 게임 기능을 만들어 볼 준비가 되었을 것입니다.

다음 시간에는 함수와 객체 지향 프로그래밍을 통해 더 체계적으로 코드를 작성하는 방법을 배워 보겠습니다. 기대되시죠? 😊