[게임 방법]
컴퓨터가 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; } }