#include
#include
#include
int random(int);
void ran (int num[4]);
void guess(int num1[4]);
void main()
{
int num[4];
srand(time(0)); //매번 실행 할때 마다 같은 순서의 난수값을 발생시키 않기 위해 현재 시간값을 준다.
ran(num); //난수발생 함수 호출
/*//4개 난수 출력결과
for(i=0 ; i<4; i++){
printf("%d",num[i]);
}*/
printf("\n");
printf(" 신 프로야구!! 숫자 4개를 누르세요^^ \n\n");
guess(num); //맞춰보는 함수 호출
}
void ran(int num[4]){
int i,j, res1,temp;
for(i=0 ; i<4; i++){
num[i] = random(10);
}
res1 = random(4); //같은 난수가있을때 바꿀 난수 하나 미리 선언
for(i=0 ; i<3; i++){
for(j=i+1 ; j<4 ; j++){
if(num[i] == num[j]){
if(num[j] == res1){ //새로 받은 난수가 바꿀려는 수와 같을때
while(1){ //같지않을때까지 루프을 돌리면서 난수 발생
res1 = random(10);
if(num[j] != res1){ //같지않으면 그난수를 선언 핳고 루프 탈출
num[j] = res1;
break;
}//안쪽 if 끝
}//while끝
}//if끝
else { //바꿀려는 수와는 다른데 나머지와 같을때...
while(1){
temp = 0;
for(i=0; i<4;i++){
if(num[i] == res1){ temp++;} //나머지랑같을때
}
if(temp == 0) { num[j] = res1; break;}//나머지숫자와 같은게 없으면 선언 후 빠져나간다.
else { res1 = random(10); }
}//while끝
}//else끝
}//if끝
else{ //두수는 다른데 나머지랑 같을 경우
while(1){
temp = 0;
for(i=0; i<4;i++){
if(num[i] == res1){ temp++;} //나머지랑같을때
}
if(temp == 0) { num[j] = res1; break;}//나머지숫자와 같은게 없으면 선언 후 빠져나간다.
else { res1 = random(10); }
}//while 끝
} //else 끝
}//안쪽 for문 끝
}//바깥 for문 끝
}
void guess(int num1[4])
{
char set[4];
int i,j;
int strike=0, ball=0, count=1;
while(1)
{
printf("# %3d차 : ",count);
for(i=0 ; i<4 ; i++){
set[i] = getche();
}
for(i=0 ; i<4 ; i++){
for(j=0 ; j<4 ; j++){
if(num1[i]==(set[j]-'0')){ //두배열 비교 같은수가 있을때
if(i==j){ strike++; } // 숫자 같고 자리도 같으면 스트라이크
else { ball++; } // 숫자 같고 자리 틀리면 볼
}
}
}
//같은 숫자가 없을경우 4개일 경우 아니면 머가 있을경우
if(strike == 0 && ball == 0) { printf(" NO!! 그런숫자 없다니까!!\n"); }
else if(strike == 4){
printf(" Ok!!! \n");
if(count <= 10) {printf("열번 만에 역시 훌륭해 훌륭하구만~ \n");}
printf("\n Game Over !!!!! \n아무키나 누르면 끝납니다~^^\n");
getchar();
break;
}
else { printf(" %dS %dB \n",strike,ball); }
strike=0; ball=0; // 누적변수 초기화
count++;
/*재미를 위해~*/
if(count == 15) {printf(" 머리 삥글삥글 그거 안대~???\n");}
else if(count == 20) {printf(" 머 댈래~ 커서 머댈래~ 머대~~~\n");}
else if(count == 25) {printf(" 니 머리 개 쑤레기!! \n");}
}
}
int random(int n)
{
int res;
res = rand() % n; //0에서 n-1까지 난수 발생
return res;
}
댓글 없음:
댓글 쓰기