Advertisement
Guest User

Untitled

a guest
Jan 11th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 17.15 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int a,b;
  5. void bicie(char plansza[][8],char wybor,int a, int b);
  6. void rysuj_plansze(char plansza[][8], char wybor)
  7. {
  8.     for(int i=0; i<8; i++)
  9.     {
  10.         cout << "  " << i+1;
  11.     }
  12.     cout << "              Ruch "<<wybor <<endl ;
  13.     for(int i=0; i<8; i++)
  14.     {
  15.         cout << i+1;
  16.         if(plansza[i][0]=='C')
  17.             {
  18.                 cout << "[C]";
  19.             }
  20.         else if(plansza[i][0]=='B')
  21.             {
  22.                 cout << "[B]";
  23.             }
  24.         else if (plansza[i][0]==' ')
  25.             {
  26.                 cout<< "[ ]";
  27.             }
  28.         else if (plansza[i][0]=='a')
  29.             {
  30.                 cout<< "[1]";
  31.             }
  32.         else if (plansza[i][0]=='b')
  33.             {
  34.                 cout<< "[2]";
  35.             }
  36.         else if (plansza[i][0]=='c')
  37.             {
  38.                 cout<< "[3]";
  39.             }
  40.         else if (plansza[i][0]=='d')
  41.             {
  42.                 cout<< "[4]";
  43.             }
  44.  
  45.                                     for(int j=1; j<8; j++)
  46.                                     {
  47.                                         if(plansza[i][j]=='C')
  48.                                         {
  49.                                             cout << "[C]";
  50.                                         }
  51.                                         else if(plansza[i][j]=='B')
  52.                                         {
  53.                                             cout << "[B]";
  54.                                         }
  55.  
  56.                                         else if(plansza[i][j]==' ')
  57.                                         {
  58.                                             cout << "[ ]";
  59.                                         }
  60.                                         else if (plansza[i][j]=='a')
  61.                                         {
  62.                                             cout << "[1]";
  63.                                         }
  64.                                         else if (plansza[i][j]=='b')
  65.                                         {
  66.                                             cout << "[2]";
  67.                                         }
  68.                                         else if (plansza[i][j]=='c')
  69.                                         {
  70.                                             cout << "[3]";
  71.                                         }
  72.                                         else if (plansza[i][j]=='d')
  73.                                         {
  74.                                             cout << "[4]";
  75.                                         }
  76.                                     }
  77.  
  78.         cout <<endl;
  79.     }
  80.  
  81.  
  82. }
  83. void biale(char plansza[][8])
  84. {
  85.     int i,j,k=0;
  86.     for( i=0,j=0; k<12;)
  87.     {
  88.        plansza[i][j]='B';
  89.        j+=2;
  90.        if(j==8)
  91.        {
  92.            j=1;
  93.            i++;
  94.        }
  95.        else if(j==9)
  96.        {
  97.            j=0;
  98.            i++;
  99.        }
  100.        k++;
  101.     }
  102. }
  103. void czarne(char plansza[][8])
  104. {
  105.     int i,j,k=0;
  106.     for( i=7,j=7; k<12;)
  107.     {
  108.        plansza[i][j]='C';
  109.        j=j-2;
  110.        if(j==-2)
  111.        {
  112.            j=7;
  113.            i--;
  114.        }
  115.        else if(j==-1)
  116.        {
  117.            j=6;
  118.            i--;
  119.        }
  120.        k++;
  121.     }
  122. }
  123. void nowa_gra(char plansza[][8])
  124. {
  125.     for(int i=0; i<8; i++)
  126.     {
  127.       //////zaznacza puste pola na planszy//////
  128.        plansza[i][0]=' ';
  129.        for(int j=1; j<8; j++)
  130.        {
  131.            plansza[i][j]=' ';
  132.        }
  133.        ///////////////////////////////////
  134.     }
  135.  
  136.     //biale(plansza); - zaznacza biale pionki na planszy
  137.     //czarne(plansza); - zaznacza czarne pionki na planszy
  138.  
  139.     //// pomocnicze pionki ułożone na planszy aby sprawdzic bicie///////////
  140.     plansza[3][3]='B';
  141.     plansza[3][5]='B';
  142.     plansza[4][4]='C';
  143.     ////////////////////////////////////////////////////////////////////////
  144. }
  145. void sprawdz_plansze(char plansza[][8]) // ta funkcja sprawdza jaka wartosc przyjmuje poszczegolna plansza[][].
  146. {
  147.     for(int i=0; i<8;i++)
  148.     {
  149.         char ocb;
  150.         ocb=plansza[i][0];
  151.         cout<< "  plansza["<<i<<"][0]= "<< ocb;
  152.         cout<< endl;
  153.         for(int j=1; j<8;j++)
  154.         {
  155.             ocb=plansza[i][j];
  156.             cout<< "   plansza["<<i<<"]["<<j<<"]= "<< ocb;
  157.             cout << endl;
  158.  
  159.         }
  160.  
  161.     }
  162. }
  163. void wybor_kapsla(char plansza[][8],char wybor)  // ta funkcja jest zaimplementowana bezposrednio w ruchu, na ta chwile nie potrafie korzystac z niej bezposrednio w innej funkcji.
  164. {
  165.     int a,b;
  166.         if(wybor=='B')
  167.         {
  168.          cout << "Wybierz kapsel:    Ruch: Bia³y" ;
  169.         }
  170.         if(wybor=='C')
  171.         {
  172.             cout << "Wybierz kapsel:    Ruch: Czerwony" ;
  173.         }
  174.         cin >> a >> b;
  175.         a-=1;
  176.         b-=1;
  177.         plansza[a][b]=wybor;
  178. }
  179. void ruch_B(char plansza[][8],char wybor)
  180. {
  181. /////////////////wybor kapsla/////////////////////////////////////
  182.     int a,b;
  183.     char tymczas_a,tymczas_b;
  184.  
  185.         do
  186.         {
  187.             cout << "Wybierz kapsel: ";
  188.             cin >> a >> b;
  189.         a-=1; // - długość planszy, minus po to aby zgadzał się z numeracją na planszy
  190.         b-=1; // - szerokość planszy, jak wyzej
  191.  
  192.             if(plansza[a+1][b-1]!=' '&& plansza[a+1][b-1]==wybor && plansza[a+1][b+1]!=' ' && plansza[a+1][b+1]==wybor ||
  193.             b==0 && plansza[a+1][b+1]!=' ' && plansza[a+1][b+1]==wybor || b==7 && plansza[a+1][b-1]!=' ' && plansza[a+1][b-1]==wybor)
  194.             // ten if sprawdza czy możemy ruszyć się wybranym pionkiem,
  195.             // jeśli plansza na skos jest różna od pustego pola albo jeśli przeszkadza nam pionek to nie będziemy mogli wybrać tego pionka
  196.             // b==0 lewa krawędź planszy
  197.             // b==7 prawa krawędź planszy
  198.             {
  199.                 cout<< "Nie mozesz ruszyc sie tym kapslem..." << endl;
  200.             }
  201.             else if(plansza[a][b]==' ')
  202.             {
  203.                 cout << "Wybrales puste pole" <<endl;
  204.             }
  205.  
  206.  
  207.         }
  208.         while(plansza[a+1][b-1]!=' ' && plansza[a+1][b-1]==wybor && plansza[a+1][b+1]!=' ' && plansza[a+1][b+1]==wybor ||
  209.               b==0 && plansza[a+1][b+1]!=' ' && plansza[a+1][b+1]==wybor ||
  210.               b==7 && plansza[a+1][b-1]!=' ' && plansza[a+1][b-1]==wybor ||
  211.               plansza[a][b]==' ');
  212.               // jak w if'ie
  213.  
  214.         plansza[a][b]=wybor; // dopiero teraz zaznaczamy pionka którym będziemy się ruszać
  215.         ////zajmuje tymczasowe miejsce miejsc na planszy zeby pozniej je oddac //////
  216.         tymczas_a=plansza[a+1][b-1];
  217.         tymczas_b=plansza[a+1][b+1];
  218.  
  219.         //////////Jeśli bedzie bicie to ta komedna pomija zaznaczanie ruchu pionka//////
  220.        if(plansza[a-1][b-1]!=wybor && plansza[a-1][b-1]!=' '||plansza[a-1][b+1]!=wybor && plansza[a-1][b+1]!=' ' ||
  221.        plansza[a+1][b-1]!=wybor && plansza[a+1][b-1]!=' ' ||plansza[a+1][b+1]!=wybor && plansza[a+1][b+1]!=' ' )
  222.        // ten if sprawdza czy dookoła wybranego pionka nie ma bicia
  223.         {
  224.             if(plansza[a-2][b-2]==' ' ||plansza[a-2][b+2]==' ' ||
  225.                plansza[a+2][b-2]==' ' ||plansza[a+2][b+2]==' ' )
  226.                // ten if sprawdza czy pole za pionkiem do zbicia jest wolne miejsce
  227.                {
  228.                   return;
  229.                }
  230.         }
  231.  
  232.         //////Zaznaczamy na planszy jak moze ruszac sie pionek/////////////////////////////
  233.         if(plansza[a+1][b-1]==' ' && plansza[a+1][b+1]==' ' && b>0 && b<7)
  234.             // sprawdza czy pola do ruchu pionka są wolnę oraz czy czy pionek nie znajduę się na krawędziach planszy (b>0 i b<7)
  235.         {
  236.             plansza[a+1][b-1]='a'; //
  237.             plansza[a+1][b+1]='b'; //zaznacza możliwość ruchu pionka na planszy
  238.         }
  239.         else if(plansza[a+1][b-1]!=' '|| b==0)  // tutaj sytuacja gdy pionek znajduję się przy lewej krawędzi
  240.         {
  241.             plansza[a+1][b+1]='b'; // zaznacza tylko ruch w prawo
  242.         }
  243.         else if(plansza[a+1][b+1]!=' ' || b==7)
  244.         {
  245.             plansza[a+1][b-1]='a';
  246.         }
  247.  
  248.         //////////////////////
  249.  
  250.  
  251. /////////////////ruch/////////////////////////////////////////////
  252.     int rusz_sie;
  253.     cout << "gdzie chcesz sie ruszyc? "<< endl;
  254.     rysuj_plansze(plansza, wybor);
  255.  
  256.     ////////// oddaje tymczasowe //////////////
  257.     plansza[a+1][b-1]=tymczas_a;
  258.     plansza[a+1][b+1]=tymczas_b;
  259.     //////////////////////////////////////////
  260.  
  261.     cin>> rusz_sie;
  262.     ////////////////wybiera pole ktore nie jest zajete///////////////////////////////////////
  263.     if(plansza[a+1][b-1]!=' ' || b==0)
  264.         // kiedy ruch w lewo jest zajety albo jestem przy lewej krawedzi
  265.     {
  266.         switch (rusz_sie)
  267.         {
  268.             case 2:
  269.             {
  270.                 plansza[a][b]=' '; // zostawia puste pole po ruchu pionka
  271.                 plansza[a+1][b+1]=wybor;
  272.             }
  273.  
  274.             break;
  275.             default: cout << "nie mozesz tego zrobic." << endl;
  276.         }
  277.     }
  278.     else if(plansza[a+1][b+1]!=' ' || b==7)
  279.         // kiedy ruch w prawo jest zajęty albo jestem przy prawej krawędzi
  280.     {
  281.         switch (rusz_sie)
  282.         {
  283.             case 1:
  284.             {
  285.                 plansza[a][b]=' ';
  286.                 plansza[a+1][b-1]=wybor;
  287.             }
  288.  
  289.             break;
  290.         }
  291.     }
  292.     else
  293.     {
  294.         switch (rusz_sie)
  295.         {
  296.         case 2:
  297.             if (plansza[a+1][b+1]==' ')
  298.                 //ruch w prawo jest możliwy
  299.             {
  300.                 plansza[a][b]=' ';
  301.                 plansza[a+1][b+1]=wybor;
  302.             }
  303.             else cout << "Nie mozesz tego zrobic.";
  304.             break;
  305.         case 1:
  306.             if (plansza[a+1][b-1]==' ')
  307.                 //ruch w lewo jest możliwy
  308.             {
  309.                 plansza[a][b]=' ';
  310.                 plansza[a+1][b-1]=wybor;
  311.             }
  312.             else cout << "Nie mozesz tego zrobic.";
  313.             break;
  314.         }
  315.  
  316.     }
  317.     /////////////////////////////////////////////////////////////////////////
  318.  
  319. }
  320. void ruch_C(char plansza[][8],char wybor)
  321. {
  322. /////////////////wybor kapsla/////////////////////////////////////
  323.     //int a,b;
  324.     char tymczas_a,tymczas_b;
  325.  
  326.         do
  327.         {
  328.             cout << "Wybierz kapsel: ";
  329.             cin >> a >> b;
  330.         a-=1;
  331.         b-=1;
  332.  
  333.             if(plansza[a-1][b-1]!=' '&& plansza[a-1][b-1]==wybor && plansza[a-1][b+1]!=' ' && plansza[a-1][b+1]==wybor ||
  334.             b==0 && plansza[a-1][b+1]!=' ' && plansza[a-1][b+1]==wybor || b==7 && plansza[a-1][b-1]!=' ' && plansza[a-1][b-1]==wybor)
  335.             {
  336.                 cout<< "Nie mozesz ruszyc sie tym kapslem..." << endl;
  337.             }
  338.             else if(plansza[a][b]==' ')
  339.             {
  340.                 cout << "Wybrales puste pole" <<endl;
  341.             }
  342.  
  343.  
  344.         }
  345.         while(plansza[a-1][b-1]!=' '&& plansza[a-1][b-1]==wybor && plansza[a-1][b+1]!=' '&& plansza[a-1][b+1]==wybor ||
  346.                b==0 && plansza[a-1][b+1]!=' '&& plansza[a-1][b+1]==wybor||
  347.                b==7 && plansza[a-1][b-1]!=' '&& plansza[a-1][b-1]==wybor||
  348.                plansza[a][b]==' ');
  349.  
  350.         plansza[a][b]=wybor;
  351.         ////zajmuje tymczasowe miejsce miejsc na planszy zeby pozniej je oddac //////
  352.         tymczas_a=plansza[a-1][b-1];
  353.         tymczas_b=plansza[a-1][b+1];
  354.  
  355.         //////////Jeśli bedzie bicie to ta komedna pomija zaznaczanie ruchu pionka//////
  356.        if(plansza[a-1][b-1]!=wybor && plansza[a-1][b-1]!=' '||plansza[a-1][b+1]!=wybor && plansza[a-1][b+1]!=' ' ||
  357.        plansza[a+1][b-1]!=wybor && plansza[a+1][b-1]!=' ' ||plansza[a+1][b+1]!=wybor && plansza[a+1][b+1]!=' ' )
  358.         {
  359.             if(plansza[a-2][b-2]==' ' ||plansza[a-2][b+2]==' ' ||
  360.                plansza[a+2][b-2]==' ' ||plansza[a+2][b+2]==' ' )
  361.                {
  362.                   return;
  363.                }
  364.         }
  365.  
  366.         //////Zaznaczamy na planszy jak moze ruszac sie kapsel/////////////////////////////
  367.         if(plansza[a-1][b-1]==' ' && plansza[a-1][b+1]==' ' && b>0 && b<7)
  368.         {
  369.             plansza[a-1][b-1]='a';
  370.             plansza[a-1][b+1]='b';
  371.         }
  372.         else if(plansza[a-1][b-1]!=' '|| b==0)
  373.         {
  374.             plansza[a-1][b+1]='b';
  375.         }
  376.         else if(plansza[a-1][b+1]!=' ' || b==7)
  377.         {
  378.             plansza[a-1][b-1]='a';
  379.         }
  380.  
  381.         //////////////////////
  382.  
  383.  
  384. /////////////////ruch/////////////////////////////////////////////
  385.     int rusz_sie;
  386.     cout << "gdzie chcesz sie ruszyc? "<< endl;
  387.     rysuj_plansze(plansza,wybor);
  388.  
  389.     ////////// oddaje tymczasowe //////////////
  390.     plansza[a-1][b-1]=tymczas_a;
  391.     plansza[a-1][b+1]=tymczas_b;
  392.     //////////////////////////////////////////
  393.  
  394.     cin>> rusz_sie;
  395.     ////////////////wybiera pole ktore nie jest zajete///////////////////////////////////////
  396.     if(plansza[a-1][b-1]!=' ' || b==0)
  397.     {
  398.         switch (rusz_sie)
  399.         {
  400.             case 2:
  401.             {
  402.                 plansza[a][b]=' ';
  403.                 plansza[a-1][b+1]=wybor;
  404.             }
  405.  
  406.             break;
  407.             default: cout << "nie mozesz tego zrobic." << endl;
  408.         }
  409.     }
  410.     else if(plansza[a-1][b+1]!=' ' || b==7)
  411.     {
  412.         switch (rusz_sie)
  413.         {
  414.             case 1:
  415.             {
  416.                 plansza[a][b]=' ';
  417.                 plansza[a-1][b-1]=wybor;
  418.             }
  419.  
  420.             break;
  421.         }
  422.     }
  423.     else
  424.     {
  425.         switch (rusz_sie)
  426.         {
  427.         case 2:
  428.             if (plansza[a-1][b+1]==' ')
  429.             {
  430.                 plansza[a][b]=' ';
  431.                 plansza[a-1][b+1]=wybor;
  432.             }
  433.             else cout << "Nie mozesz tego zrobic.";
  434.             break;
  435.         case 1:
  436.             if (plansza[a-1][b-1]==' ')
  437.             {
  438.                 plansza[a][b]=' ';
  439.                 plansza[a-1][b-1]=wybor;
  440.             }
  441.             else cout << "Nie mozesz tego zrobic.";
  442.             break;
  443.         }
  444.  
  445.     }
  446.     /////////////////////////////////////////////////////////////////////////
  447.  
  448. }
  449. void bicie(char plansza[][8],char wybor,int a, int b)
  450. {
  451.     int ruch;
  452.     if(plansza[a-1][b-1]!=wybor ||plansza[a-1][b+1]!=wybor ||
  453.        plansza[a+1][b-1]!=wybor ||plansza[a+1][b+1]!=wybor )
  454.        // sprawdza czy dookoła wybranego pionka jest pionek przeciwnego zawodnika
  455.     {
  456.         if(plansza[a-2][b-2]==' ' ||plansza[a-2][b+2]==' ' ||
  457.            plansza[a+2][b-2]==' ' ||plansza[a+2][b+2]==' ' )
  458.            //sprawdza czy jest wolne miejsce za pionkiem przeciwnika
  459.         {
  460.             char tymczas_a,tymczas_b,tymczas_c,tymczas_d;
  461.             tymczas_a = plansza[a-2][b-2];
  462.             tymczas_b = plansza[a-2][b+2];
  463.             tymczas_c = plansza[a+2][b-2];
  464.             tymczas_d = plansza[a+2][b+2];
  465.  
  466.             if(b>0 && b<7 && plansza[a-2][b-2]==' ' && plansza[a-1][b-1]!=wybor && plansza[a-1][b-1]!=' ')
  467.                 // sprawdza czy wybrany pionek nie jest na krawędzi planszy,sprawdza czy za pionkiem do zbicia jest wolne miejsce
  468.                 // sprawdza również czy pionek do zbicia należy do przeciwnika i czy nie jest to czasem puste miejsce.  
  469.             {
  470.                 plansza[a-2][b-2]='a';
  471.             }
  472.             if(b>0 && b<7 && plansza[a-2][b+2]==' ' && plansza[a-1][b+1]!=wybor && plansza[a-1][b+1]!=' ')
  473.             {
  474.                 plansza[a-2][b+2]='b';
  475.             }
  476.             if(b>0 && b<7 && plansza[a+2][b-2]==' ' && plansza[a+1][b-1]!=wybor && plansza[a+1][b-1]!=' ')
  477.             {
  478.                 plansza[a+2][b-2]='c';
  479.             }
  480.             if(b>0 && b<7 && plansza[a+2][b+2]==' ' && plansza[a+1][b+1]!=wybor && plansza[a+1][b+1]!=' ')
  481.             {
  482.                 plansza[a+2][b+2]='d';
  483.             }
  484.             rysuj_plansze(plansza,wybor);
  485.             cout << "gdzie bicie? "<< endl;
  486.             //// oddaje tymczasowe ////////////////////
  487.           //  plansza[a-2][b-2] = tymczas_a;
  488.           //  plansza[a-2][b+2] = tymczas_b;
  489.           //  plansza[a+2][b-2] = tymczas_c;
  490.           //  plansza[a+2][b+2] = tymczas_d;
  491.             /////////////////////////////////////////////
  492.  
  493.            // cin >> ruch;
  494. /*
  495.             switch (ruch)
  496.             {
  497.             case 1:
  498.                 if(plansza[a-2][b-2]==' ')
  499.                 {
  500.                     plansza[a-2][b-2]=wybor;
  501.                 }
  502.  
  503.             case 2:
  504.                  if(plansza[a-2][b+2]==' ')
  505.                 {
  506.                     plansza[a-2][b+2]=wybor;
  507.                 }
  508.             case 3:
  509.                  if(plansza[a+2][b-2]==' ')
  510.                 {
  511.                     plansza[a+2][b-2]=wybor;
  512.                 }
  513.             case 4:
  514.                  if(plansza[a+2][b+2]==' ')
  515.                 {
  516.                     plansza[a+2][b+2]=wybor;
  517.                 }
  518.                 break;
  519.  
  520.             }*/
  521.         }
  522.     }
  523. }
  524. int main()
  525. {
  526. char plansza [8][8];
  527. char wybor='B';
  528.     nowa_gra(plansza);
  529.     //biale(plansza);
  530.     //rysuj_plansze(plansza, wybor);
  531.     //wybor_kapsla(plansza,wybor);
  532.     while(1)
  533.     {
  534.     wybor='B';
  535.     rysuj_plansze(plansza, wybor);
  536.     ruch_B(plansza,wybor);
  537.     bicie(plansza,wybor,a,b);
  538.     rysuj_plansze(plansza, wybor);
  539.     wybor='C';
  540.     rysuj_plansze(plansza, wybor);
  541.     ruch_C(plansza,wybor);
  542.     bicie(plansza,wybor,a,b);
  543.     rysuj_plansze(plansza, wybor);
  544.     //sprawdz_plansze(plansza);
  545.     }
  546.     return 0;
  547. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement