int race(int bet_h);  //레이스를 실행해주는 함수 선언
void start_screen();  //경마게임의 시작화면 및 경주마 소개 프린트 함수 선언
int bet(int my_money);  //경주마를 선택하고 베팅을 하기 위한 함수 선언
void three_second ();  //경주가 시작되기전  카운트 3초를 프린트 해주는 함수 선언
void print_3();  //숫자\'3\'를 나타내기 위한 프린트 함수 선언
void print_2();  //숫자\'2\'를 나타내기 위한 프린트 함수 선언
void print_1();  //숫자\'1\'를 나타내기 위한 프린트 함수 선언
void print_go(); //\'Go!\'를 나타내기 위한 프린트 함수 선언

int win_count;   //1등한 경주마의 번호 저장 변수 선언
int race_count;  //레이스의 횟수 저장 변수 선언
int win_num[NUM];//각 경주마의 우승 횟수 저장 배열 선언
double win_rate[NUM];  //각 경주마의 승률 저장 배열 선언
char User_name[20];    //게임 User의 이름 저장 배열 선언

int main()
{
 int my_money = 10000;  //초기 자본 10000원으로 지정

 printf (\"\\n\\n\\t\\t미니 경마장에 오신 것을 환영합니다!!!!\");
 
 printf (\"\\n\\n\\n\\n\\n\\t\\t\\t이름을 입력해주세요 : \");
 scanf (\" %s\", &User_name);

 printf (\"\\n\\n\\t\\t\\t %s 님 어서오세요~!\\n\\n\\n\\t\\t\\t즐거운 시간 보내세요!!\\n\\n\", User_name);

 system (\"PAUSE\");

 system (\"cls\");

 start_screen();  //start_screen 함수 호출
 
 while(my_money>0)
 {
  my_money = bet(my_money); //bet 함수 호출
 }

 printf(\"%s 님 돈을 모두 잃으셨습니다.~!\", User_name);
 printf(\"%s 님 수고하셨습니다.\\n %s 님 다시 또 오세요~!\", User_name, User_name);
 printf(\"\\n\\n\");
 
 system(\"PAUSE\");

 return 0;
}


void start_screen()
{
 printf(\"\\t\\t**********************************************\\n\");
 printf(\"\\t\\t*********    미니 경마장             *********\\n\");
 printf(\"\\t\\t**********************************************\\n\");
 printf(\"\\t\\t\\t\\t\\t\\t<마사회>\\n\\n\");
 printf(\"\\t------------------- <경주마 정보> ----------------------\\n\");
 printf(\"\\t| 마번  |       마명           |  산지  |  성별 |  연령 |\\n\");
 printf(\"\\t--------------------------------------------------------\\n\");
 printf(\"\\t| 1번마 | 날쌘돌이마 ┏┓ˇ∋- |  미국  |  수   |   5   |\\n\");
 printf(\"\\t| 2번마 | 바람돌이마 ┌┐˚>- |  호주  |  암   |   6   |\\n\");
 printf(\"\\t| 3번마 | 허리케인마 ┎┒'≫- |  한국  |  수   |   4   |\\n\");
 printf(\"\\t| 4번마 | 번개돌이마 ┍┑`⊃- |  일본  |  거   |  10   |\\n\");
 printf(\"\\t| 5번마 | 미친듯이마 ┏┓º⊇- |  영국  |  암   |   7   |\\n\");
 printf(\"\\t--------------------------------------------------------\\n\");
}


int bet(int money)
{
 int i;
    int bet_h, bet_m = 1; //User가 베팅한 경주마와 베팅금액을 저장시켜주기 위한 변수 선언
    int match=1;
    int result, betting[NUM]; // 레이스의 결과 저장 변수, 배당률 저장 배열 선언
 
 srand(time(NULL));

 switch (win_count)  //각 경주마의 우승횟수를 저장하고 레이스의 횟수를 카운터 해준다.
 {
 case 1:
  win_num[0] = win_num[0]++;
  race_count++;
  break;
 case 2:
  win_num[1] = win_num[1]++;
  race_count++;
  break;
 case 3:
  win_num[2] = win_num[2]++;
  race_count++;
  break;
 case 4:
  win_num[3] = win_num[3]++;
  race_count++;
  break;
 case 5:
  win_num[4] = win_num[4]++;
  race_count++;
  break;
 default:
  break;
 }


 for(i=0; i < NUM; i++) //배당율을 지정한다.
  betting[i] = (rand() % 10) + 5;    // 배당율은 최소 5배부터 14배까지 지정

 printf(\"\\t\\t ---------------------------------------\\n\");
 printf(\"\\t\\t|  | 1번 | 2번 | 3번 | 4번 | 5번 |\\n\");
 printf(\"\\t\\t| 배당률 | 2 | %3d | %3d | %3d | %3d |\\n\",betting[0], betting[1], betting[2], betting[3], betting[4]);
 printf(\"\\t\\t| 승  률 | %3.0f | %3.0f | %3.0f | %3.0f | %3.0f |\\n\",win_rate[0], win_rate[1], win_rate[2], win_rate[3], win_rate[4]);
 printf(\"\\t\\t ---------------------------------------\\n\");
 printf(\"\\n%s님의 보유액 %d원\\n\", User_name, money);

 while(match == 1)
 { //말번호를 잘못 입력하면 다시 입력
  printf(\"몇번마 : \");
  scanf(\"\\n%d\", &bet_h);
 
  match = 0; // 이렇게 함으로써 while문을 빠져나간다.
  
  switch (bet_h)
  {
  case 1:
   printf (\" %s님은 1번마를 선택하셨습니다.\\n\", User_name);
   break;
  case 2:
   printf (\" %s님은 2번마를 선택하셨습니다.\\n\", User_name);
   break;
  case 3:
   printf (\" %s님은 3번마를 선택하셨습니다.\\n\", User_name);
   break;
  case 4:
   printf (\" %s님은 4번마를 선택하셨습니다.\\n\", User_name);
   break;
  case 5:
   printf (\" %s님은 5번마를 선택하셨습니다.\\n\", User_name);
   break;
  default:
   printf (\" 해당하는 말이 없습니다. 다시 선택해주세요\\n\");
   match = 1;
   break;
  }
 }

 match = 1; //다음 while문에 쓰기 때문에 다시 1로 배정

 while(match <= money)
 {
  printf(\"배팅 액수 : \");
  scanf(\"%d\", &bet_m);
       
  match = bet_m + money; 
  
  if(bet_m > money) //배팅하려는돈이 자기돈보다 많으면 다시 입력
  {
   printf(\"%님이 가진돈보다 많은 돈을 배팅하셨습니다.\\n다시 입력하세요.\\n\", User_name);
   match = money;
  }
 }
 
 result = race(bet_h); //레이스의 결과값을 bet함수에서 return 받음.

 if(result == 1) // 베팅한 경주마가 우승했을 경우
 {
  printf (\"\\n\\n선택말의 배팅율은 %d배 입니다.\\n\", betting[bet_h - 1]);
  printf (\"배팅액은 %d원 입니다.\\n\", bet_m);
  money = money + (bet_m * betting[bet_h - 1]);
  printf(\"%s 님 축하합니다! 승리하셨습니다.\\n\", User_name);
  printf(\"%s 님 %d원을 따셨습니다.\\n\", User_name, bet_m * betting[bet_h - 1]);
 }
 else if (result == 2) //베팅한 경주마가 2등을 했을 경우
 {
  printf (\"\\n\\n선택말의 배팅율은 %d배 입니다.\\n\", betting[bet_h - 1]);
  printf (\"배팅액은 %d원 입니다.\\n\", bet_m);
  money = money + ((bet_m * betting[bet_h - 1])/2);
  printf(\"%s 님 아쉽게도 2등을 하였습니다.\\n\", User_name);
  printf(\"%s 님 배당금의 1/2인 %d원을 따셨습니다.\\n\", User_name, ((bet_m * betting[bet_h - 1])/2));
 }
 else if (result == 3) //베팅한 경주마가 3등을 했을 경우
 {
  printf (\"\\n\\n선택말의 배팅율은 %d배 입니다.\\n\", betting[bet_h - 1]);
  printf (\"배팅액은 %d원 입니다.\\n\", bet_m);
  money = money + ((bet_m * betting[bet_h - 1])/4);
  printf(\"%s 님 아쉽게도 3등을 하였습니다.\\n\", User_name);
  printf(\"%s 님 배당금의 1/4인 %d원을 따셨습니다.\\n\", User_name, ((bet_m * betting[bet_h - 1])/4));
 }
 else //베팅한 경주마가 1~3등 안에 못 들어왔을 경우
 {
  money = money - bet_m;
  printf(\"\\n\\n%s 님 안타깝군요~!\\n\\n\", User_name);
  printf(\"%s 님 %d원을 잃었습니다.\\n\", User_name, bet_m);
 }

 return money; //베팅한 후 첫 자본에 가감액을 더해준 후 나머지 액수 Return.
}

int race(int bet_h)
{
 int end[NUM] = {0};  //각 경주마의 골인 유무 배열 선언
    int rank[NUM] = {0}; //경주마의 순위 저장 배열 선언
 int distance[NUM]={0}; // 각 경주마의 이동거리 변수 선언
 int i, j=0;
    int horse_num[NUM], count[NUM]={0}; // 경주마의 번호 저장 배열 및 경주마의 골인한 순서 저장 배열 선언
 
 srand(time(NULL));
 
 three_second(); //카운트 3초 함수 호출
 
 printf(\"\\a\");   //제어문을 이용한 효과음 
 
 while (j < 7)
 {
  system(\"cls\");

  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  printf(\"① 날쌘돌이마\\n\");

  if(end[0]==0)
  {
   distance[0] = distance[0] + (rand()%MAX_SPEED+1); //난수함수를 이용, 각 경주마의 이동거리 차별화
  
   for (i = 0 ; i<distance[0]; i++)
   {
    printf(\" \");

    if(i >= 66) //1번 경주마 골인하였을 경우
    {
     end[0] = 1;
     horse_num[0] = 1;
     count[0] = ++j;
    }

    if (end[0] == 1)
     break;
   }
   
   if (distance[0] < 40) 
    printf(\"┏┓ˇ∋-\");
   else if (distance[0] % 2 == 0 )
    printf(\"/ ̄\ˇ∋-\");
   else
    printf(\"< ̄>ˇ∋-\");
  }

  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  printf(\"② 바람돌이마\\n\");

  if(end[1] == 0)
  {
   distance[1] = distance[1] + (rand()%MAX_SPEED+1);

   for (i = 0 ; i<distance[1]; i++)
   {
    printf(\" \");
    
    if(i >= 66) //2번 경주마 골인하였을 경우
    {
     end[1] = 1;
     horse_num[1] = 2;
     count[1] = ++j;
    }

    if (end[1] == 1)
     break;
   }

   if (distance[1] < 40)
    printf(\"┌┐˚>-\");
   else if (distance[1] % 2 == 0)
    printf(\"/ ̄\˚>-\");
   else
    printf(\"< ̄>˚>-\");
  }
  
  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  printf(\"③ 허리케인마\\n\");

  if(end[2] == 0)
  {
   distance[2] = distance[2] + (rand()%MAX_SPEED+1);
   
   for (i = 0 ; i<distance[2]; i++)
   {
    printf(\" \");
    
    if(i >= 66) //3번 경주마 골인하였을 경우
    {
     end[2] = 1;
     horse_num[2] = 3;
     count[2] = ++j;
    }

    if (end[2] == 1)
     break;
   }

   if (distance[2] < 40)
    printf(\"┎┒'≫-\");
   else if (distance[2] % 2 == 0)
    printf(\"/ ̄\'≫-\");
   else
    printf(\"< ̄>'≫-\");
  }

  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  printf(\"④ 번개돌이마\\n\");

  if(end[3] == 0)
  {
   distance[3] = distance[3] + (rand()%MAX_SPEED+1);
   
   for (i = 0 ; i<distance[3]; i++)
   {
    printf(\" \");

    if(i >= 66) //4번 경주마 골인하였을 경우
    {
     end[3] = 1;
     horse_num[3] = 4;
     count[3] = ++j;
    }

    if (end[3] == 1)
     break;
   }

   if (distance[3] < 40)
    printf(\"┍┑`⊃-\");
   else if (distance[3] % 2 == 0)
    printf(\"/ ̄\`⊃-\");
   else
    printf(\"< ̄>`⊃-\");
  }

  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  printf(\"⑤ 미친듯이마\\n\");

  if(end[4]==0)
  {
   distance[4] = distance[4] + (rand()%MAX_SPEED+1);

   for (i = 0 ; i<distance[4]; i++)
   {
    printf(\" \");
   
    if(i >= 66) //5번 경주마 골인하였을 경우
    {
     end[4] = 1;
     horse_num[4] = 5;
     count[4] = ++j;
    }

    if (end[4] == 1)
     break;
   }

   if (distance[4] < 40)
    printf(\"┏┓º⊇-\");
   else if (distance[4] % 2 == 0)
    printf(\"/ ̄\º⊇-\");
   else
    printf(\"< ̄>º⊇-\");
  }

  printf (\"\\n\");
  printf (\"================================================================================\");
  printf (\"\\n\");

  _sleep(200); //0.2초 지연시켜주는 함수

  if(j == 6) //모든 경주마가 골인하였을 경우
  {
   j = 7; //while 문을 빠져나오기 위한 변수 올림
   printf(\"배팅 하신 말   : %d\\n\", bet_h);
   
   for (i = 0 ; i < NUM ; i++) //순서대로 골인한 경주마의 번호를 rank에 저장
   {
    if (count[i] == 1)
     rank[0] = horse_num[i];
    else if (count[i] == 2)
     rank[1] = horse_num[i];
    else if (count[i] == 3)
     rank[2] = horse_num[i];
    else if (count[i] == 4)
     rank[3] = horse_num[i];
    else
     rank[4] = horse_num[i];
   }

   for (i = 0 ; i < NUM ; i++) //골인한 순위 프린트
    printf (\"\\n %d 등 : %d 번 말\", i+1, rank[i]);

   win_count = rank[0]; //우승한 경주마의 번호를 win_count에 저장

   if (rank[0] == bet_h)
    return 1;
   else if (rank[1] == bet_h)
    return 2;
   else if (rank[2] == bet_h)
    return 3;
   else
    return 0;
  }

  if (j == 5)
   ++j;

 }
}
====================================================이건데형님들 이게임을2명에서 하게 바꾸고싶어요========================