Blog/JAVA기반 스마트웹 개발2021

프로그래밍 언어 활용 part 2 - 게임 프로젝트

고구마달랭이 2021. 8. 10. 17:58

게임 프로젝트

학습내용 학습목표
▪ 프로그램 설계
▪ 코드 분석
▪ 목표로 하는 시스템에서 요구되는 자료구조를 설계할 수 있다.
▪ 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.

프로그램 설계

 

1. 개요

[1] 제목

▪ 숫자 야구 게임

 

[2] 기능

 

[3] 요구사항

☞ 정답을 찾는데 소요된 시간과 횟수 출력

☞ 랜덤함수를 이용하여 0~9 사이의 3자리 정수 생성

☞ 사용자 입력은 0~999 사이의 정수로 입력

☞ 분할 컴파일이 가능하도록 다중 소스 파일 생성

 

 

2. 주요 기능 구현

 

 


코드 분석


1. 헤더 파일

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define STRIKE 2
#define BALL 1

int * check(int*, int* );
void makeUserNum(int *);
void makeComNum(int *);
int tm_secDiff(time_t , time_t );
int tm_minDiff(time_t , time_t );

 

 

2. 랜덤값 생성

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

 

 

3. 소요시간 처리

int tm_minDiff(time_t end, time_t start)
{

	double d_diff;
	d_diff = difftime(end, start);
	return d_diff / 60;
}

int tm_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);
}

 

 


 

 

학습정리

 

1. 프로그램 설계

▪ 시간함수 관련 라이브러리를 이용하면 현재 시간, 시간차이 등을 간단하게 얻을 수 있음

일반적으로 IDE 에서 프로젝트를 생성한 후 다중 소스파일로 작성하여 프로그램을 개발함

1~10까지의 값을 난수 발생하기 위해서는 rand()%10+1 의 연상을 이용함

 

2. 코드 분석

▪ 시간함수 관련 라이브러리를 이용하면 현재 시간, 시간차이 등을 간단하게 얻을 수 있음

▪ 랜덤값은 rand 함수를 이용하여 발생시킬 수 있음

▪ rand 함수는 랜덤값을 발생시키지만 실제로는 항상 동일한 값을 발생시킴

다른 랜덤값 생성을 위하여 랜덤함 수 호출 전 srand 함수를 이용하여 다른 시드를 전달함