본문 바로가기

IT 이야기

c 숫자야구 소스코드

#include <stdio.h>

#include <stdlib.h>

#include <time.h>


int num[4];


int tmp[4];


int goal;

int lim;


int bl, st;


void bl_ck()

{

   int i, j;

   bl = 0;

   for(i=0; i<=3; i++) for(j=0; j<=3; j++) if(num[i] == tmp[j]) bl++;

}


void st_ck()

{

   int i;

   st = 0;

   for(i=0; i<=3; i++) {

      if(num[i] == tmp[i]) {

       st++;

       bl--;

      }

   } 

}


int main()

{

   srand(time(NULL));

   int i, j;

   while(num[0] == num[1] || num[0] == num[2] || num[0] == num[3] || num[1] == num[2] || num[1] == num[3] || num[2] == num[3])

   {

      for(i=0; i<=3; i++) num[i] = rand() % 10; 

   }

   

  printf("정답은 %d %d %d %d 입니다.", num[0], num[1], num[2], num[3]);

   

   while(~(goal))

   {

      lim++;

      scanf("%d %d %d %d", &tmp[0], &tmp[1], &tmp[2], &tmp[3]);

      bl_ck();

      st_ck();

      if (st == 4) {

      goal = 1;

      break;

  }  else {

  if (lim == 15) break;

  else {

  

   printf("%d볼, %d스트라이크, %d아웃\n", bl, st, 4-bl-st);

}

  }

       }

   if(goal == 1) {

      printf("맞았어요\n");

      printf("%d번 만에 맞췄어요", lim);

   } 

   else {

      printf("좀더열심히 해보세요");

  printf("정답은 %d %d %d %d 입니다.", num[0], num[1], num[2], num[3]);

}

return 0;

}



심심해서 짜본 숫자야구입니다.

그냥 아무생각없이 짠거라 최적화가 부족해도 양해 바랍니다.

사용되는 숫자는 0 ~ 9까지, 4자리 맞추는 숫자 야구입니다.


질문은 언제나 환영입니다!