야구 게임

[게임 방법]
컴퓨터가 1-9까지 서로 다른 숫자 3개를 저장한다.
사용자가 1-9까지의 숫자를 3개 입력 한다.
컴퓨터가 가지고 있는 자리와 숫자가 일치 하면 STRIKE, 숫자만 일치 하면 BALL 이고
그렇지 않은 경우 아무것도 아니다.

[소스 코드]

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



void main(void)
{
    int computer[3] = { 0, };
    volatile int gamer[3] = { 0, };
    int guess[9] = { 0, };
    int count = 0, i = 0;
    int strike, ball;
    int inputCount = 0;
    char yesno;

    srand(time(NULL));
    puts("야구 게임을 시작합니다.");

    while (1)
    {
        computer[0] = (rand() % 9) + 1;
        computer[1] = (rand() % 9) + 1;
        computer[2] = (rand() % 9) + 1;
        count = 1;
        inputCount = 0;

        if (computer[0] == computer[1]
            || computer[0] == computer[2]
            || computer[1] == computer[2])
            continue;

        // puts("숫자 1-9를 공백으로 분리하여 3개를 입력  ");

        memset(guess, 0, sizeof(guess));

        // printf("%d %d %d \n", computer[0], computer[1], computer[2]);


        while (1)
        {
            strike = ball = 0;

            printf("\n 3개의 숫자[0-9]를 입력하세요: ");
            scanf("%d %d %d", &gamer[0], &gamer[1], &gamer[2]);



            if (computer[0] == gamer[0]) {
                strike++;
            }
            else if (computer[0] == gamer[1] || computer[0] == gamer[2]) {
                ball++;
            }

            if (computer[1] == gamer[1]) {
                strike++;
            }
            else if (computer[1] == gamer[0] || computer[1] == gamer[2]) {
                ball++;
            }

            if (computer[2] == gamer[2])  {
                strike++;
            }
            else if (computer[2] == gamer[1] || computer[2] == gamer[0]) {
                ball++;
            }

            guess[gamer[0] - 1] = 1;
            guess[gamer[1] - 1] = 1;
            guess[gamer[2] - 1] = 1;


            printf("\n[%2d회]  %d %d %d  S: %d\tB: %d \n\n", count, gamer[0], gamer[1], gamer[2], strike, ball);
            if (strike == 3)  {
                printf("삼진 아웃 입니다.\n\n");
                break;
            }

        }
        printf("게임을 계속하겠습니까(y/n)? ");
        scanf("%c", &yesno);
        if (yesno == 'N' || yesno == 'n')
            break;

    }

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s