티스토리 뷰

게임 프로젝트

프로그램 설계

제목 : 숫자 야구 게임


요구사항:

    • 정답을 찾는데 소요된 시간과 횟수 출력
    • 랜덤함수를 이용하여 0~9 사이의 3 자리 정수 생성
    • 사용자 입력은 0~999 사이의 정수로 입력
    • 분할 컴파일이 가능하도록 다중 소스 파일 생성

주요 기능 구현

* 컴퓨터 숫자 만들기 *
시드함수 SRAND와 랜덤함수 RAND를 이용한 3개의 랜덤값 생성
rand() % 10

* 소요 시간 연산 *
time함수를 이용하여 시작과 종료 시점의 시간을 추출
difftime함수를 이용하여 시간차를 추가 연산에 의해 출력

* 분할 컴파일 *
사용자 정의 헤더파일 생성
배열 포인터를 함수의 매개변수로 전달

 

헤더 파일


#include 
#include 

#define STRIKE 2
#define BALL 1

int* check(int*, int*);
voidmakeUserNum (int);
voidmakeComNum (int);
int tm_secDiff (time_t , time_t);
int tm_minDiff (time_t , time_t);

 

랜덤값 생성


void makeComNum (int * com)
{
    int i;
    srand(time(NULL));
    for (i = 0; i < 3; i++)
    {
        com[i] = rand() % 10;
        printf(“ %d ”, com[i]);
    }
}

 

소요시간 처리


int tm_minDiff (time_t end, time_t start)
{
    double  d_diff;
    d_diff = difftime (end,start);
    returnd_diff / 60;
}
inttm_secDiff time_t end, time_t start)
{
    int  tm_min;
    double d_diff;
    d_diff= difftime (end,start);
    tm_min = d_diff / 60;
    return d_diff --( tm_min *60 );
}

 

    • 시간함수 관련 라이브러리를 이용하면 현재 시간 , 시간차이 등을 간단하게 얻을 수 있음
    • 랜덤값은 rand 함수를 이용하여 발생시킬 수 있음
    • rand 함수는 랜덤값을 발생시키지만 실제로는 항상 동일한 값을 발생시킴
    • 다른 랜덤값 생성을 위하여 랜덤함 수 호출 전 srand 함수를 이용하여 다른 시드를 전달함
댓글
© 2018 webstoryboy