제 목 7강 과제입니다
작성자 우대식 등록날짜 2022-01-03 09:03:41 / 조회수 : 175
강좌명 [단과] 게임 프로그래밍 기초 C++ Part.1
첨부파일
  •  

    #include
    #include

    using namespace std;

    /*
    숫자 야구 게임 : 1~9 까지의 숫자 중 랜덤한 '다른'숫자 3개를 맞추는 게임
    컴퓨터가 임의로 3개를 순차적으로 숫자를 선택한다. ex) 1 2 3

    반복
    플레이어가 숫자 3개를 순차적으로 고른다. ex) 5 3 3 = 아웃 볼 스트라이크
    스트라이크 : 1
    볼 : 1
    아웃 : 1

    맞추는데 횟수 제한 or 맞추는데 걸린 제한수도 설정 가능
    */

    int main()
    {
        int nP1, nP2, nP3;
        int nC1, nC2, nC3;
        int nStrike=0, nBall, nOut;
        int nCount;
        bool bEnding=true;

        srand(time(NULL));
        rand();

        while (bEnding) // 게임 지속 or 끝내기
        {
                nC1 = rand() % 9 + 1;
                nC2 = rand() % 9 + 1;
                while (nC1 == nC2)
                {
                    nC2 = rand() % 9 + 1;
                }
                nC3 = rand() % 9 + 1;
                while (nC1 == nC3 || nC2 == nC3)
                {
                    nC3 = rand() % 9 + 1;
                }
                //cout << nC1 << nC2 << nC3; // 난수값 설정

                nCount = 0;
                nStrike = nBall = nOut = 0;

                while (nStrike<3) // 게임 시작
                {
                    nStrike = nBall = nOut = 0;
                    nCount++;
                    
                    cout << "첫번째 숫자를 입력하세요. : ";
                    cin >> nP1;
                    cout << endl << "두번째 숫자를 입력하세요. :";
                    cin >> nP2;
                    cout << endl << "세번재 숫자를 입력하세요. :";
                    cin >> nP3;

                    if (nP1 == nC1)
                    {
                        nStrike++;
                    }
                    else if (nP1 == nC2 || nP1 == nC3)
                    {
                        nBall++;
                    }
                    else
                    {
                        nOut++;
                    }
                    if (nP2 == nC2)
                    {
                        nStrike++;
                    }
                    else if (nP2 == nC1 || nP2 == nC3)
                    {
                        nBall++;
                    }
                    else
                    {
                        nOut++;
                    }                
                    if (nP3 == nC3)
                        {
                        nStrike++;
                        }
                    else if (nP3 == nC1 || nP3 == nC2)
                        {
                        nBall++;
                        }
                    else
                        {
                        nOut++;
                        }

                    cout<< nStrike << ":스트라이크" << endl;
                    cout<< nBall << ":볼" << endl;
                    cout<< nOut << ":아웃" << endl;

                    system("pause");
                    system("cls");

                 }
                
                cout << nCount << "회 만에 성공했습니다." << endl;
                cout << "새 게임을 시작할까요? (y/n)" << endl;
                char chContinue;
                cin >> chContinue;
                    if (chContinue == 'n')
                    {
                        bEnding = false;
                        cout << "게임 끝!";
                     }
        }

    }

  • 작성자 : 게임클래스 / 등록날짜 : 2022-01-03 11:35:57
  • 안녕하세요 게임클래스 입니다.

    다음글에 답변을 드렸습니다!!!

     

    하지만 과제에 대해 몇가지 추가사항을 요청해 보도록 하겠습니다.

    1. 예외처리 부분 만들것.

     - 분명히 범위는 1~9인데 10, 20도 입력이 가능하더라구요??

    2. 반복되는 숫자 입력 안되게 할것

     - 1,1,1 입력해도 되더라구요??

     

    지금이야 간단한 코드지만 나중에 게임이 복잡해지면 이런 사소한것을 처음부터 잡아나가지 않으면

    버그의 개수는 겉잡을 수 없이 늘어나게 됩니다!!

     

    늘 열공하세요!!!!!!!!

댓글 1개
  • 우대식 [ 2022-01-03 11:53:56 ]
  • 아직 예외처리 부분은 안보기는 했는데, 뭐,, 어떻게 보강해 보겠습니다. 화이팅.