Develop(개발)/C\C++

C++로 만든 UP DOWN GAME

seongmik 2021. 1. 28. 14:51
728x90
반응형

복학전에 공부겸 심심풀이로 C++또는 파이썬으로 게임을 만들어 보기로 했다.

가장 기초적인 게임부터 하나씩 만들어 볼 거다.

오늘 만들어본건 컴공 수업을 처음 들을 때 배우는 UP DOWN GAME인데 만드는 난이도가 쉽다.

여러 헤더를 얕고 다양하게 쓸 수 있어서 만들어보면 좋은 게임 같다.

 

아래는 소스 코드

#include <iostream>
#include <windows.h>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
string play("play");
string help("help");
string quit("quit");
bool hp=false;

int main() {
    srand((unsigned int)time(0));

    while(true) {
        system("cls");
        cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■\n";
        cout << "■■■■■■■■■  UP DOWN GAME  ■■■■■■■■■\n";
        cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■\n";

        if(hp==true) {
            cout << "\n 게임이 시작되면 0~100 사이의 랜덤한 숫자가 정해집니다.";
            cout << "\n 정해진 숫자를 추측해서 맞추는 게임입니다.";
            cout << "\n 예측한 숫자가 정답보다 낮으면 UP, 높으면 DOWN, 같으면 게임이 끝납니다.";
            cout << "\n 최소 횟수로 정답을 맞춰보세요!\n";
            hp=false;
        }

        cout << "\n ▶ play";
        cout << "\n ▶ help";
        cout << "\n ▶ quit \n";
        string inp;
        cin >> inp;
        if(inp.compare(play)==0) {
            system("cls");
            cout << "\n S ";
            Sleep(200);
            system("cls");
            cout << "\n S T";
            Sleep(200);
            system("cls");
            cout << "\n S T A";
            Sleep(200);
            system("cls");
            cout << "\n S T A R";
            Sleep(200);
            system("cls");
            cout << "\n S T A R T";
            Sleep(400);
            system("cls");
            int tried=0;
            int answer = rand() % 101;
            while(true) {
                int num;
                cout << "\nOkay Let Guess : ";
                cin >> num;
                tried++;
                if(num<0 || num>100) {
                    tried--;
                    cout << "0~100사이의 숫자만 입력할 수 있습니다.";
                }
                else if(num == answer) {
                    cout << "\n축하합니다! 당신은 " << tried << "번 만에 정답을 맞췄습니다!";
                    cout << "\n정답은 [" << answer << "] 입니다.\n";
                    system("pause");
                    break;
                }
                else if(num < answer) {
                    cout << "UP";
                }
                else {
                    cout << "DOWN";
                }
            }
        }
        else if(inp.compare(help)==0) {
            hp=true;
        }
        else if(inp.compare(quit)==0) {
            exit(0);
            return 0;
        }
    }


    return 0;
}
728x90
반응형

'Develop(개발) > C\C++' 카테고리의 다른 글

[C/C++] memset() 함수의 사용법과 주의사항  (1) 2023.02.05
C++ string 클래스 정리  (0) 2020.11.26