최대한 간단한 함수를 이용한 C언어 야구게임
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

최대한 간단한 함수를 이용한 C언어 야구게임에 대한 보고서 자료입니다.

목차

1. 문제 정의
2. 문제 분석
3. 알고리즘
4. 소스 코드
5. 결과 화면
6. 느낀 점

본문내용

1. 문제 정의
-3개의 무작위의 숫자를 출력한다.
-출력한 무작위의 숫자를 대응시키는 숫자와 맞춘다.
2. 문제 분석
-무작위의 숫자를 출력하는데, 난수를 출력하는 srand()와 rand()함수를
사용해야 할 것이다.
-반복할 횟수를 정확히 알기 어려우므로 for문 보다는 while문을 사용하는 것이 더 편할 것이다.
-입력하는 값은 scanf함수를 사용해서 출력되는 난수값과 같은지의 여부를
if값을 통해 확인하고, 같을 때까지 반복문을 확인하도록 해야 할 것이다.
3. 알고리즘
전체적인 흐름도
시작
Main()
각 자리 변수 지정
a1,a2,a3,b1,b2,b3
난수 출력
rand,while함수 구현
입력한 값과 대응여부 확인하기
scanf, if함수 구현
결과값 출력
printf함수 구현
다이어그램
int a1,a2,a3 :입력하는 변수값
b1,b2,b3: 난수 변수값
s,b : strike, ball
-strike,ball이 모두 0개로 구현될 수 있으므로, 초깃값을 0으로 설정하였다.
-while문에서 세 인수가 같으면 탈출 할 수 없도록 if 문 != 같다를 이용하 였다.
-두 번째 while문에서는 맞출 때까지 반복할 수 있도록 if문을 사용하였고,
난수를 지정할 때 변수값 b1,b2,b3를 다른 값으로 지정하도록 하였으므로, a1=b1이라면 a1!=b2, a1!=b3다. 고로 볼 값에 더해질 염려가 없다.
a1=b2 같은 것은 볼 값을 더하기 위한 거다.
-난수값 출력을 위한 rand(),srand()함수를 이용하였다.
내부 구현
난수 구현에 관한 것을 설명하기 위해 몇몇 함수의 설명을 가져왔다.
--------------------------------------------------------
(1) rand() 함수
컴퓨터는 난수를 생성하기 위해 시드라는 것을 이용한다.
rand 함수를 실행하면 시드에 작성된 무작위 값을 순서대로 반환한다.
같은 숫자를 대입받은 시드는 바뀌지 않고 일정하기 때문에 rand () 함수만을 사용할 경우
프로그램을 재실행 할 때마다 같은 값이 반복되서 출력된다.
(2) time() 함수
time 함수는 1970년 1월 1일 부터 지금까지의 초값을 반환한다.
time (NULL) 의 형태로 이용이 가능하다.
(3) srand() 함수
srand의 인자 값에 따라 참조 하는 시드 테이블이 바뀐다.
srand (1) 은 시드에 1이라는 숫자를 보낸다.
1을 대입 받은 시드는
수학의 함수 y = ax 에서 x의 값이 변하면 y의 값이 변하는 것과 같은 원리로
값이 조금씩 변하게 된다.
srand (100) 은 시드에 100이라는 숫자를 보낸다.
time ( NULL ) 의 값은 매 초마다 바뀌기 때문에
시간이 역행하지 않는 이상
srand ( time ( NULL ) ) 은 프로그램 실행시마다 다른 난수 테이블을 불러오게 될 것이다.
이 때 srand 의 반환 타입이 unsigned int 이기 때문에
srand ( ( unsigned ) time ( NULL ) ) 로 형변환을 해주면 좋다.
참고로 컴퓨터는 unsigned 자료형을 더 빠르게 처리하기 때문에,
양수값 밖에 나올 수 없는 변수나 함수는 unsigned 자료형을 쓰는게 좋다고 한다.
그렇다면 프로그램을 실행할 때마다 다른 난수 테이블을 사용하게 코드를 짜는 것은 해결
  • 가격2,300
  • 페이지수11페이지
  • 등록일2013.08.08
  • 저작시기2013.8
  • 파일형식한글(hwp)
  • 자료번호#870056
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니