Programming/ C & C++

[C++] Bingo Game ver.2

BadaGreen_Kim 2018. 2. 20. 18:56

* 추가사항 


   - Bingo Line Result

   - iBingo > 5 일경우 Break;

   - 좌,우 대각선 빙고 


  1. #include<iostream>
  2. #include<time.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.  
  9.     srand((unsigned int)time(0));
  10.  
  11.     int iNumber[25] = {};
  12.  
  13.  
  14.     // 1 ~ 25까지 숫자 입력
  15.  
  16.     for (int i = 0; i < 25; ++i)
  17.     {
  18.         iNumber[i] = i + 1;
  19.     }
  20.  
  21.  
  22.     int iBingo = 0;
  23.  
  24.  
  25.  
  26.     // 숫자를 섞는다.
  27.  
  28.     int iTemp, idx1, idx2;
  29.  
  30.     for (int i = 0; i < 100; ++i)
  31.     {
  32.         idx1 = rand() % 25;
  33.         idx2 = rand() % 25;
  34.  
  35.  
  36.         iTemp = iNumber[idx1];
  37.         iNumber[idx1] = iNumber[idx2];
  38.         iNumber[idx2] = iTemp;
  39.     }
  40.  
  41.  
  42.     while (true)
  43.     {
  44.  
  45.         //숫자를 5x5 출력
  46.  
  47.         for (int i = 0; i < 5; ++i)
  48.         {
  49.             for (int j = 0; j < 5; ++j)
  50.             {
  51.                 if (iNumber[* 5 + j] == INT_MAX)
  52.                     cout << "*\t";
  53.                 else
  54.                     cout << iNumber[* 5 + j] << "\t";
  55.             }
  56.             cout << endl;
  57.  
  58.  
  59.         }
  60.  
  61.         cout << "Bingo Line : " << iBingo << endl;
  62.        
  63.         if (iBingo > 5)
  64.             break;
  65.        
  66.         cout << "Input Number ( 0 : Exit ) :";
  67.  
  68.  
  69.  
  70.  
  71.         int iInput;
  72.         cin >> iInput;
  73.  
  74.  
  75.         if (iInput == 0)
  76.             break;
  77.  
  78.         else if (iInput < 1 || iInput >25)
  79.             continue;
  80.  
  81.  
  82.  
  83.         // 중복을 체크하기 위함
  84.  
  85.         bool bAcc = true;
  86.  
  87.  
  88.         // 모든 숫자를 차례대로 검색해서 입력숫자와 같은 숫자를 검색.
  89.  
  90.         for (int i = 0; i < 25; ++i)
  91.         {
  92.  
  93.             // 같은 숫자가 있을 경우
  94.  
  95.             if (iInput == iNumber[i])
  96.             {
  97.                 bAcc = false;
  98.  
  99.                 iNumber[i] = INT_MAX;
  100.  
  101.                 break;
  102.             }
  103.         }
  104.  
  105.         if (bAcc)
  106.             continue;
  107.  
  108.         iBingo = 0;
  109.  
  110.         // 가로, 세로 줄 수를 구한다.
  111.  
  112.         int iStar1 = 0, iStar2 = 0;
  113.  
  114.  
  115.         for (int i = 0; i < 5; ++i)
  116.         {
  117.  
  118.             // 한 줄을 체크하기 전 0으로 별 개수 초기화.
  119.  
  120.             iStar1 = iStar2 = 0;
  121.  
  122.             for (int j = 0; j < 5; ++j)
  123.             {
  124.                 if (iNumber[* 5 + j] == INT_MAX)
  125.                     ++iStar1;
  126.  
  127.                 if (iNumber[* 5 + i] == INT_MAX)
  128.                     ++iStar2;
  129.  
  130.             }
  131.  
  132.  
  133.             // j for 문을 빠져나옿고 나면 현재 줄의 가로 별 개수가 몇개인지
  134.  
  135.             if (iStar1 == 5)
  136.                 ++iBingo;
  137.             if (iStar2 == 5)
  138.                 ++iBingo;
  139.  
  140.  
  141.         }
  142.  
  143.         //왼쪽상단 -> 대각선
  144.         iStar1 = 0;
  145.         for (int i = 0; i < 25; i += 6)
  146.         {
  147.             if (iNumber[i] == INT_MAX)
  148.                 ++iStar1;
  149.         }
  150.         if (iStar1 == 5)
  151.             ++iBingo;
  152.  
  153.         //오른쪽 상단 -> 대각선
  154.  
  155.  
  156.         iStar1 = 0;
  157.         for (int i = 4; i <= 20; i += 4)
  158.         {
  159.             if (iNumber[i] == INT_MAX)
  160.                 ++iStar1;
  161.  
  162.         }
  163.  
  164.         if (iStar1 == 5)
  165.             ++iBingo;
  166.  
  167.     }
  168.  
  169.     return 0;
  170. }







'Programming > C & C++' 카테고리의 다른 글

[C++] Console 기반 학생관리프로그램  (0) 2018.02.23
[C++] Bingo Game ver.3 ( AI Ver )  (0) 2018.02.21
[C++] Bingo Game ver.1  (0) 2018.02.20
[C++]숫자퍼즐게임  (0) 2018.02.13
[C++] BaseBall Game  (0) 2018.02.13