본문 바로가기

공부/C언어

C언어 - 숫자 야구 게임 프로그램

오예

숫자 야구 게임 다들 아시죠?

설마 모를라고..

그래도 모를 수 있으니까 간략한 설명은 할게요 ..ㅋㅋ

 

글이 있어야 뭐 읽을게 잇죠 .ㅋㅋ

프로그래머(코딩한 사람)이 랜덤으로 수를 정하도록 코딩을 했다면

컴퓨터는 스스로 아무 숫자 3개를 생성해 냅니다.

그러면 사용자는 그 세개의 숫자를 맞추면 되는 겁니다.

아주 단순하고 무식한 게임임..ㅋㅋㅋㅋ

그래서 위치나 숫자만 맞으면 볼

위치랑 숫자랑 모두 매치가 되면 스트라이크

둘다 틀리면 아웃

으로 표기가 되어 나타나게 됩니다 .

 

먼저 알고리즘 부터 보실가요~

 

잘 안보이시죠..

변수명을 aa, bb, cc 로 했네요..

저렇게 하면 별로 안 조아요..

무슨 변수를 무슨 용도로 썻는지를 모르거든요..

저봐요..

지금 aa,, bb, cc를 뭘로 썻는지 모르겠음..ㅋㅋㅋ

그냥 스트라이크 볼 아웃을 나타내려 한건가..ㅋㅋㅋㅋ

소스 보면 아실 거에요 ㅋㅋㅋㅋ

 

 

#include <stdio.h>

#include <stdlib.h>//srandrand를 쓸 때 필요

#include <time.h>//시간에 따른 함수를 쓰기 때문에 필요

 

void main ()

{

int a,b,c; // 컴퓨터가 생성하는 숫자

int aa,bb,cc; // 입력 받는 수

int strike,ball,out; // 스트라이크, , 아웃 처리 변수

int success=0; // 성공여부

 

srand(time(NULL)); //시간에 따라 랜덤변수표에서 시작위치를 잡아줌

 

printf("숫자 야구 게임을 시작 하겠습니다.\n\n"); //게임시작출력

printf("규칙: 1. 0부터 9까지의 서로 다른 숫자 3개를 입력해야 합니다.\n");

printf(" 2. 숫자를 하나 입력하신 후 엔터를 누르시고 다음 숫자를 입력해야 합니다.\n\n"); //규칙출력

 

 

a=rand()%10; //첫자리 - 숫자가 한자리로 됨

while(1)

{

b=rand()%10; // 두째자리

if(b != a)

break;

}

while(1)

{

c=rand()%10;

if(c != a && c != b) // 세째 자리

break;

}

 

while(success != 1) //성공 여부 검사

{

strike=0;

ball=0;

out=0;

 

while(1)

{

printf("숫자를 입력해 주세요.\n");//숫자 입력 출력

scanf("%d %d %d", &aa,&bb,&cc);//숫자 입력하기

if((aa != bb) && ( aa != cc) && ( bb != cc) )//숫자가 중복되었을 때

{

break;

}

printf("중복된 숫자를 입력하셨습니다.\n\n");//에러메시지출력

}

 

 

if(a==aa) //숫자와 위치가 같을 때 strike

strike++;

else if(a==bb) //다를 경우 ball

ball++;

else if(a==cc) //다를 경우 ball

ball++;

if(b==bb) //숫자와 위치가 같을 때strike

strike++;

else if(b==aa) //다를 경우 ball

ball++;

else if(b==cc) //다를 경우 ball

ball++;

........ 

 

이런식으로 while문을 돌려서

안에서 if 와 else if 를 사용해서 해 주면 됩니다 ..ㅎ

aa, bb, cc 는 사용자가 입력하는 수였네요..ㅋㅋ

간단하게 적고 싶다면 저렇게 주석을 달아주면 좋겠지만..

그냥 변수명을 잘 짓는 것이 더 좋습니다..ㅋ

 

이제 결과화면 투척!

 

 

저런식으로 게임을 진행해 나가고 정답을 맞추는 경우 3스트라이크가 되어야 프로그램이 종료하게 됩니다 .ㅎ

전 항상 글을 새벽에 쓰다보니..

제대로 적고 있는게 맞는지 모르겠네요.....ㅋㅋㅋ

참고용이니까... 필요하신 분만.. 참고하세요..

참고이상의 것을 하게되면.. 아마.. 손해일꺼에요..ㅋㅋㅋ

별로 도움되는게 아니니까 ..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ