|
오랜만에 옛날 생각 나네요
93년도에 그냥 심심해서 만들어 본 기억이 있는데...
간단하게 C로 만들어 보지요.
1. 난수를 이용해서 임의의 숫자 만들기
2. 3자리 숫자 입력받기
3. 비교하기
4. 결과 출력 및 종료
1.
do{
randomize();
ComNum[0] = random(10);
ComNum[1] = random(10);
ComNum[2] = random(10);
}while(ComNum[0]==ComNum[1] || ComNum[1]==ComNum[2] || ComNum[2]==ComNum[0]);
2.
scanf("%d",&TempNum);
for(i=0;i<3;i++) UserNum[i] = TempNum%pow(i+1)/pow(i);
3.
for(i=0;i<3;i++) if(ComNum[i]==UserNum[i]) strike++;
for(i=0;i<3;i++) for(j=1;j<3;j++) if(ComNUm[i]==UserNum[(i+j)%3]) ball++;
4.
printf("%3d ---- ",TempNum);
if(strike) printf("%dS ",strike);
if(ball) printf("%dB ",ball);
마지막에 종료조건 strike==3이거만 추가하시고
이걸 전부 묶으면 됩니다.
strike,ball은 당연히 시작시 초기화.
함 묶어 볼까요..
void main(void)
{
int i,j;
int strike,ball;
int TempNum,ComNum[3],UserNum[3];
do{
randomize();
ComNum[0] = random(10);
ComNum[1] = random(10);
ComNum[2] = random(10);
}while(ComNum[0]==ComNum[1] || ComNum[1]==ComNum[2] || ComNum[2]==ComNum[0]);
do{
strike = 0;
ball = 0;
printf("Input Number: ");
scanf("%d",&TempNum);
for(i=0;i<3;i++) UserNum[i] = TempNum%pow(i+1)/pow(i);
for(i=0;i<3;i++) if(ComNum[i]==UserNum[i]) strike++;
for(i=0;i<3;i++) for(j=1;j<3;j++) if(ComNUm[i]==UserNum[(i+j)%3]) ball++;
printf("%3d is ",TempNum);
if(strike==3)
{
TempNum = 0;
for(i=0;i<3;i++) TempNum += ComNum[i]*pow(i);
printf("Oh!! Good!! My number is %d\n",TempNum);
}
else
{
if(strike) printf("%dS ",strike);
if(ball) printf("%dB ",ball);
printf("\n");
}
}while(strike<3);
}
|