프로그래밍 언어/C언어

C프로그래밍 숫자 야구게임

컨설턴트X 2023. 5. 2. 14:54
728x90
반응형

숫자야구 게임은 1부터 9까지의 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임입니다. 

사용자는 매 차례 3자리 숫자를 입력하고, 컴퓨터는 그에 대한 힌트를 제공합니다. 

힌트에는 스트라이크와 볼이 있습니다. 

스트라이크는 숫자와 자리가 모두 맞는 경우이고, 볼은 숫자는 맞지만 자리가 다른 경우입니다. 만약 사용자가 3스트라이크를 달성하면 게임에서 이기게 됩니다.

 

 

 이제 C언어로 숫자야구 게임을 만들어봅시다.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int answer[3];
    int guess[3];
    int strike, ball;
    int i, j;

    srand(time(NULL));

    // 중복되지 않는 1~9까지의 난수를 생성하여 answer 배열에 저장
    for (i = 0; i < 3; i++) {
        answer[i] = rand() % 9 + 1;
        for (j = 0; j < i; j++) {
            if (answer[i] == answer[j]) {
                i--;
                break;
            }
        }
    }

    printf("숫자 야구 게임을 시작합니다!\n");

    // 3 스트라이크가 될 때까지 반복
    do {
        printf("숫자 3개를 입력하세요 (1~9): ");
        scanf("%d %d %d", &guess[0], &guess[1], &guess[2]);

        // 입력한 숫자와 정답을 비교하여 스트라이크와 볼의 개수를 구함
        strike = 0;
        ball = 0;
        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++) {
                if (guess[i] == answer[j]) {
                    if (i == j) {
                        strike++;
                    } else {
                        ball++;
                    }
                }
            }
        }

        // 스트라이크와 볼의 개수를 출력
        printf("%d 스트라이크, %d 볼\n", strike, ball);
    } while (strike < 3);

    printf("축하합니다! 게임에서 승리하셨습니다.\n");

    return 0;
}
728x90
반응형