Advertisement
Redxone

[C++] Connect 4

Jul 29th, 2015
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. int CalculateColumnSpace(int y, int x, int dist);
  7. void Clear_Board();
  8.  
  9.     char board[11][25] = {
  10.        "   Connect Four  ",
  11.        "|-1-2-3-4-5-6-7-|",
  12.        "                 ",
  13.        " | | | | | | | | ",
  14.        " | | | | | | | | ",
  15.        " | | | | | | | | ",
  16.        " | | | | | | | | ",
  17.        " | | | | | | | | ",
  18.        " | | | | | | | | ",
  19.        " =============== ",
  20.     };
  21.  
  22. int main()
  23. {
  24.  
  25.  
  26.     int pX;
  27.     int pY;
  28.     int checkY;
  29.     int space;
  30.     int player = 1;
  31.  
  32.  
  33.     refresh:
  34.         system("cls");
  35.     for(int i=0; i<11; i++)
  36.     {
  37.         cout << board[i] << endl;
  38.     }
  39.  
  40.  
  41.     for(int i=0; i<11; i++)
  42.     {
  43.         for(int p=0; p<25; p++)
  44.         {
  45.  
  46.             if(board[i][p] == 'G')
  47.             {
  48.                 if((board[i][p] == 'G' && board[i-1][p+2] == 'G' && board[i-2][p+4] == 'G' && board[i-3][p+6] == 'G') || (board[i][p] == 'G' && board[i-1][p-2] == 'G' && board[i-2][p-4] == 'G' && board[i-3][p-6] == 'G') ||(board[i][p] == 'G' && board[i][p+2] == 'G' && board[i][p+4] == 'G' && board[i][p+6] == 'G') || (board[i][p] == 'G' && board[i-1][p] == 'G' && board[i-2][p] == 'G' && board[i-3][p] == 'G'))
  49.                 {
  50.                     system("cls");
  51.                     cout << "P1 wins!" << endl;
  52.                     system("pause");
  53.                     cout << "|Game Board|" << endl;
  54.                     for(int i=0; i<11; i++)
  55.                     {
  56.                         cout << board[i] << endl;
  57.                     }
  58.                     system("pause");
  59.                     Clear_Board();
  60.                     player=1;
  61.                    goto refresh;
  62.                 }
  63.             }
  64.         }
  65.  
  66.     }
  67.  
  68.     for(int i=0; i<11; i++)
  69.     {
  70.         for(int p=0; p<25; p++)
  71.         {
  72.  
  73.             if(board[i][p] == 'O')
  74.             {
  75.                 if((board[i][p] == 'O' && board[i-1][p+2] == 'O' && board[i-2][p+4] == 'O' && board[i-3][p+6] == 'O') || (board[i][p] == 'O' && board[i-1][p-2] == 'O' && board[i-2][p-4] == 'O' && board[i-3][p-6] == 'O') || (board[i][p] == 'O' && board[i][p+2] == 'O' && board[i][p+4] == 'O' && board[i][p+6] == 'O') || (board[i][p] == 'O' && board[i-1][p] == 'O' && board[i-2][p] == 'O' && board[i-3][p] == 'O'))
  76.                 {
  77.                     system("cls");
  78.                     cout << "P2 wins!" << endl;
  79.                     system("pause");
  80.                     cout << "|Game Board|" << endl;
  81.                     for(int i=0; i<11; i++)
  82.                     {
  83.                         cout << board[i] << endl;
  84.                     }
  85.                     system("pause");
  86.                     Clear_Board();
  87.                     player=1;
  88.                     goto refresh;
  89.                 }
  90.             }
  91.         }
  92.  
  93.     }
  94.  
  95.  
  96.     if(player==1)cout << "Enter Column Number Player G: ";
  97.     if(player==2)cout << "Enter Column Number Player O: ";
  98.  
  99.     cin >> space;
  100.     switch(space)
  101.     {
  102.         case 1:
  103.         pX = 2;
  104.         pY = CalculateColumnSpace(2,pX,6);
  105.         if(pY == 0)goto refresh;
  106.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  107.         if(player==1)player=2; else player=1;
  108.         goto refresh;
  109.         break;
  110.  
  111.         case 2:
  112.         pX = 4;
  113.         pY = CalculateColumnSpace(2,pX,6);
  114.         if(pY == 0)goto refresh;
  115.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  116.         if(player==1)player=2; else player=1;
  117.         goto refresh;
  118.         break;
  119.  
  120.         case 3:
  121.         pX = 6;
  122.         pY = CalculateColumnSpace(2,pX,6);
  123.         if(pY == 0)goto refresh;
  124.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  125.         if(player==1)player=2; else player=1;
  126.         goto refresh;
  127.         break;
  128.  
  129.         case 4:
  130.         pX = 8;
  131.         pY = CalculateColumnSpace(2,pX,6);
  132.         if(pY == 0)goto refresh;
  133.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  134.         if(player==1)player=2; else player=1;
  135.         goto refresh;
  136.         break;
  137.  
  138.         case 5:
  139.         pX = 10;
  140.         pY = CalculateColumnSpace(2,pX,6);
  141.         if(pY == 0)goto refresh;
  142.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  143.         if(player==1)player=2; else player=1;
  144.         goto refresh;
  145.         break;
  146.  
  147.         case 6:
  148.         pX = 12;
  149.         pY = CalculateColumnSpace(2,pX,6);
  150.         if(pY == 0)goto refresh;
  151.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  152.         if(player==1)player=2; else player=1;
  153.         goto refresh;
  154.         break;
  155.  
  156.         case 7:
  157.         pX = 14;
  158.         pY = CalculateColumnSpace(2,pX,6);
  159.         if(pY == 0)goto refresh;
  160.         if(player==1)board[pY][pX] = 'G'; else board[pY][pX] = 'O';
  161.         if(player==1)player=2; else player=1;
  162.         goto refresh;
  163.         break;
  164.  
  165.         default:
  166.         cout << "Invalid Selection" << endl;
  167.         system("pause");
  168.         goto refresh;
  169.         break;
  170.     }
  171.  
  172.     exit:
  173.     return 0;
  174. }
  175.  
  176.  
  177. int CalculateColumnSpace(int y, int x, int dist)
  178. {
  179.     int cY;
  180.  
  181.         if(board[y+1][x] != ' ')
  182.         {
  183.             cout << "Column Full" << endl;
  184.             system("pause");
  185.             y = 0;
  186.  
  187.         }
  188.         else
  189.         {
  190.             for(int h=0; h<dist; h++)
  191.             {
  192.             cY = y+1;
  193.                 if(board[cY][x] == ' ')
  194.                 {
  195.                     y++;
  196.                 }
  197.             }
  198.         }
  199.  
  200.         return y;
  201. }
  202.  
  203. void Clear_Board()
  204. {
  205.     for(int i=0; i<11; i++)
  206.     {
  207.         for(int p=0; p<25; p++)
  208.         {
  209.             if(board[i][p] == 'G')
  210.             {
  211.                 board[i][p] = ' ';
  212.             }
  213.         }
  214.     }
  215.  
  216.     for(int i=0; i<11; i++)
  217.     {
  218.         for(int p=0; p<25; p++)
  219.         {
  220.             if(board[i][p] == 'O')
  221.             {
  222.                 board[i][p] = ' ';
  223.             }
  224.         }
  225.     }
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement