반응형
C언어 연습으로 유명한 야구게임이 있다.
랜덤 함수가 필요한데, 이는 time.h 를 통해 srand 함수를 사용해야 함으로 import한다.
반응형
이에 대한 코드
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int u1, u2, u3;
int c1, c2, c3;
int strike = 0, ball = 0; // 초기화
srand((unsigned)time(NULL)); // 랜덤 숫자 생성
do{
c1 = rand() % 10;
c2 = rand() % 10;
c3 = rand() % 10;
}while(c1 == c2 || c2 == c3 || c1 == c3);
printf("Computer : %d %d %d\n", c1, c2, c3);
do{
strike = ball = 0;
printf("Input : ");
scanf("%d%d%d", &u1, &u2, &u3); // 3개의 숫자를 입력 받음
// 랜덤의 숫자와 입력한 숫자가 일치하면 스트라이크 증가 아니면 볼 증가
if(c1 == u1) strike++;
else if(c1 == u2) ball++;
else if(c1 == u3) ball++;
if(c2 == u2) strike++;
else if(c2 == u1) ball++;
else if(c2 == u3) ball++;
if(c3 == u3) strike++;
else if(c3 == u1) ball++;
else if(c3 == u2) ball++;
printf("\n%dS %dB\n", strike, ball);
}while(strike != 3);
}
컴퓨터가 랜덤으로 낸 숫자와 내가 쓴 숫자가 일치하면 스트라이크이다. 그 외는 볼이다.
원래는 사용자가 먼저 숫자를 쓰고, 랜덤으로 컴퓨터가 숫자를 생성하는게 맞는데
그것은 위 코드를 변형해서 바꿔보도록 한다.
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] C언어 소수 자료형 float와 double의 차이점. ('double'에서 'float'(으)로 잘립니다.) (0) | 2022.01.25 |
---|---|
[C언어] C언어 배열(array) 반복문(for문)으로 모두 출력하기 (0) | 2022.01.23 |
[C언어] C언어 입력시 발생한 버퍼(buffer) 비우기. fputs, fgets 함수 사용. (0) | 2022.01.12 |
[C언어] C언어 함수에 배열을 input 인자로 전달하기 (0) | 2022.01.11 |
[C언어] C언어 배열 자동 할당, 배열 부분 할당, 배열 colcumn 값만 할당 (0) | 2022.01.10 |