본문 바로가기

IT STUDY/Language

[C 활용] 야구게임 만들기

반응형

 

C공부를 하는 사람이라면 야구게임... 다들아실겁니다.

3개의 난수를 내어서 하나라도 맞추면 스트라이크 다 틀리면 볼..

그래서 3번만에 맞추면 아웃!! 4번틀리면 볼넷 ㅋㅋ

그럼 제작 방법 한번 알아볼까요?

 

 

 

 

들어가기에 앞서... Tip


 

 

1. 사용되는 헤더 파일

헤더

설명

함수

studio.h

표준 입출력 라이브러리 함수 정의

printf, scanf, fopen,getc 등

stdlib.h

정수형의 범위를 나타내는 상수들을 정의

int atol, rand, malloc 등

 time.h

 시간과 날짜를 얻거나 조작하는 함수

time_t time , ctime 등

 

 

 

 

 

 

C를 이용한 야구게임 만들기


/*********************************************************************
         1-9까지의 난수 3개를 한번 받아서 
몇번만에 3스트라이크를 잡는지 확인하는야구 게임이다. 4볼시 도 게임종료
(같은 위치: 스트라이크  다른 위치: 볼  존재x: x)
**********************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
	int data[3];
	int i,j;
	int aa=0,bb=0; //for문의 중복을 없애기 위해 존재
	int st=0,bl=0; //스트라이크 볼을 센다.
	int count=0;
	int input[3];
	long seed;

	//난수를 발생
	seed=time(NULL);
	srand(time(NULL));

	printf("======================================\n");
	printf("==============야구게임================\n");
	printf("======================================\n\n\n");

	//1-9에서 난수를 3개 발생시킨다. 중복시 다시 난수를 발생 시킨다.
	for(i=0;i<3;i++)
	{
		data[i]=rand()%9+1;
		for(j=0;j<i;j++)
		{
			while(data[j]==data[i])
			{
				data[i]=rand()%9+1;
			}
		} 
		printf("%d ",data[i]);
	}
	printf("\n");

	//3스트라이크 나 4볼이 나올때까지 무한 루프
	while(1)
	{
		printf("===1~9까지 값을 3가지 넣으세요===\n");
		scanf("%d %d %d",&input[0],&input[1],&input[2]);

		//난수와 입력을 비교하여 스트라이크, 볼 확인
		for(j=0;j<3;j++)
		{
			for(i=0;i<3;i++)
			{
				if(i==j&&data[i]==input[i])
				{
					 aa++;
					 printf("스트라익~~\n");
				}
				else if(data[i]==input[j])
				{
					  bb++;
					  printf("보올~~~~\n");
				}
			}
			//스트라이크나 볼이 한번 나올시 for문을 빠져나간다
			if(aa>=1)
			{
				aa=0;
				st++;
				break;
			}
			else if(bb>=1)
			{
				bb=0;
				bl++;
				break;
			}
			else continue;
		}
		
		count++;
		printf("현재까지%d번 던져서 %d스트라이크 %d볼 입니다\n\n",count,st,bl);

		
		if(st==3)//3번의 스트라이크를 잡을 시
		{    
			printf("정답은 %d %d %d \n",data[0],data[1],data[2]);
			printf("%d번 만에  삼진아웃 ㅊㅋㅊㅋ\n",count);
			break;
		}
		else if(bl==4)
		{
			 printf("주자 나갔음 ㅋㅋㅋ\n");
			 break;
		}
   	}
	return EXIT_SUCCESS;
}




 

 

 

 

[실행 결과]

 

 

 

 

 

 

 

 

 

 

 

반응형