야구게임이란 임의의 3개의 숫자를 생각한 뒤에 그 숫자를 맞추는 게임이다.

숫자를 입력했을때, 숫자의 순서와 값이 맞으면  Strike

값이 맞았지만 , 순서가 틀렸을때 ball로 힌트를 주게 된다.

가령 임의의 숫자로 3, 6, 9 라는 숫자가 답일 경우..

3, 6, 9

--------

1, 2, 3 --- >  3 이 맞았지만, 순서가 틀리므로 1 ball 이 된다.

3, 4, 5 --- >  3 이 맞고, 순서도 같으므로 1strike 이다.

6, 9, 3 --- > 모든 값이 있지만, 순서가 다르므로 3 ball 이다.

이런 식으로 3 strike 를 만드는 것이 목표인 게임.

------------------------------------------------------------------------------------

무엇보다 필요한 건 임의의 숫자를 정하는 방법인데,

임의의 숫자를 구하기 위해 Random 함수를 이용한다.

랜덤함수 rand() 를 사용하기 위해서는 <stdlib.h>를 첨부 시켜줘야 한다.

#include <stdlib.h>

printf("%d",rand())   난수의 생성 범위는 [0, n] 사이인데, n 은 <stdlib.h> 파일 내에 있는

RAND_MAX 상수에 의해 정의된다. 비쥬얼 C++ 에서는 0 ~ 32767 사이의 난수를 생성한다.

생성되는 난수의 범위  따로 0~ n 사이로 정해주기 위해서는

rand() % n + 1 라는 수식을 이용한다.

rand() 함수를 그냥 사용하면 항상 같은 수만 반복해서 발생하는데, 이를 해결하기 위해

랜덤함수의 SEED 값을 매번 다르게 주어야 한다.

시드값을 주기 위해서 srand() 함수를 호출하게 되는데, 이 시드값은 일반적으로 time()

으로 반환되는 값을 srand()의 인자로 활용하게 됨으로 써 달리 줄 수 있다.

time(NULL) <-- 경과한 시간을 초 단위로 반환하는 함수.  <time.h> 이 필요하다.

즉 시드값을 달리 주기위해, srand(time(NULL)) 호출하면 된다.

Ex) 0에서 45 사이의 난수 6개를 생성하기 위해서는 다음과 같이 하면 된다.

------------------------------------------------

srand(time(null));

for(i = 0; i< 6; i++)

{

        num = rand()%45 + 1;

        printf("%d",num);

}

------------------------------------------------

** 터보 C  random 함수 = 비주얼 C에서는 rand 함수

** 터보 C  randomize 함수는 = 비주얼 C 에서는 srand 함수

 


스무살 피부 슈즈붐 아쿠아블루 스쿨2001 그녀의 방 레이지본 행복한 땡글이 추억저장소 일상은 카메라모드 그린벤치
이 글의 관련글
2주간 인기글2주간 인기글이 없습니다.

트랙백 주소 :: http://soccer21.pe.kr/trackback/745

댓글을 달아 주세요