Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 15.09 KB | None | 0 0
  1. /*
  2. -Skoki prawo dol                             - dzialaja w calosci sprawnie (pomijajac zaznaczenie - malo istotny problem, bardziej estetyczny) - brak bugów, skonczone
  3. Do Zrobienia 13-02-11 02:11
  4. -sprawdzic skok 4,2 na 5,3                   - naprawione
  5. -system skoku lewo dol                       - dziala, w calosci sprawnie (oprocz niepotrzebnego zaznaczenia po skoku - patrzy wyzej)
  6. -zabezpieczenia przy skoku na krawedz        - dziala, nie mozna przeskoczyc za plansze
  7. -system skokow dla pionkow 2
  8. -system zamiany pionkow na damki
  9.  
  10. debuger:
  11.         cout<<"debug 1";getchar();cin.ignore();
  12. */
  13. #include <iostream>
  14. #include <cstdio>
  15. #include <windows.h>
  16. HANDLE kon = GetStdHandle(STD_OUTPUT_HANDLE);
  17. using namespace std;
  18. int szachownica[9][9];
  19. int pionki1[9][9];
  20. int pionki2[9][9];                            
  21. int x,xz,y,yz;                                                     //zmienne przesuwajace
  22. int licz, zazn;                                                    //zmienna liczaca ilosc przejsc petli do w wypisz_szach oraz zmienna wazna przy zmianie kolora zaznaczenia
  23. int runda=1;
  24. int stop;                                                          //zmienna potrzebna przy przeskakiwaniu, aby pionek przeskakiwal a nie podmienal sie. omija warunek
  25. void pion()                                                        // funkcja do pionkow startowych
  26. {
  27. pionki1[1][1]=1;
  28. pionki1[1][3]=1;
  29. pionki1[1][5]=1;
  30. pionki1[1][7]=1;
  31. pionki1[2][2]=1;
  32. pionki1[2][4]=1;
  33. pionki1[2][6]=1;
  34. pionki1[2][8]=1;
  35. pionki1[3][1]=1;
  36. pionki1[3][3]=1;
  37. pionki1[3][5]=1;
  38.  
  39. pionki1[3][7]=1;
  40.  
  41. pionki2[6][2]=2;
  42. pionki2[6][4]=2;
  43. pionki2[6][6]=2;
  44. pionki2[6][8]=2;
  45. pionki2[7][1]=2;
  46. pionki2[7][3]=2;
  47. pionki2[7][5]=2;
  48. pionki2[7][7]=2;
  49. pionki2[8][2]=2;
  50. pionki2[8][4]=2;
  51. pionki2[8][6]=2;
  52. pionki2[8][8]=2;
  53. }
  54. void pion1()
  55. {
  56. do
  57. {
  58.      if(pionki1[x][y]==1)                                            // przesuwanie PIONKOW 1
  59.      {
  60.                         stop=0;                                            
  61.                         SetConsoleTextAttribute (kon,10);                   // kolor X                                
  62.                         cout << endl <<  "xz: ";
  63.                         cin >> xz;
  64.                         if(xz!=0)
  65.                         {
  66.                                  SetConsoleTextAttribute (kon,11);          //kolor Y
  67.                                  cout << "yz: ";
  68.                                  cin >> yz;
  69.                                  
  70.                                  if(((xz%2) && (yz%2)) || ((!xz%2) && (!yz%2)) || ((x%2) && (y%2)) || ((!x%2) && (!y%2)))  //sprawdza czy pionki leza na bialych polach
  71.                                  {
  72.                                          
  73.                                          if((pionki2[xz][yz])==2)           // system przeskakiwania pionkow | sprawdza czy pionek ktory zaznaczamy jest pionkiem przeciwnika
  74.                                          {
  75.                                          stop=1;
  76.                                          if(pionki2[xz+1][yz+1]!=2 && pionki1[xz+1][yz+1]!=1)  //sprawdza czy za przeskakiwanym pionkiem jest inny pionek (1 lub 2)
  77.                                          {
  78.                                                                if(yz>y) // w prawo
  79.                                                                {
  80.                                                                         if(x==7 && y!=8 && y!=7)     //zabezpieczenie, aby nie dalo sie przeskakiwac za plansze
  81.                                                                         {cout<<"debug 1";getchar();cin.ignore();
  82.                                                                                  stop=1;                                                                            
  83.                                                                                  continue;
  84.                                                                         }
  85.                                                                        
  86.                                                                           pionki1[x][y]=0;
  87.                                                                           pionki1[xz+1][yz+1]=1;
  88.                                                                           pionki2[xz][yz]=0;
  89.                                                                           zazn=1;
  90.                                                                           stop=1;
  91.                                                                }
  92.                                          }
  93.                                          if((pionki2[xz+1][yz-1]!=2 && pionki1[xz+1][yz-1]!=1)) //sprawdza czy za przeskakiwanym pionkiem jest inny pionek (1 lub 2)
  94.                                                                 {
  95.                                                                 if(yz<y)  // w lewo
  96.                                                                 {
  97.                                                                        if(y==1 || y==2)      //zabezpieczenie, aby nie dalo sie przeskakiwac za plansze
  98.                                                                         {
  99.                                                                                  stop=1;                                                                            
  100.                                                                                  continue;
  101.                                                                         }
  102.                                                                        
  103.                                                                            pionki1[x][y]=0;
  104.                                                                            pionki1[xz+1][yz-1]=1;
  105.                                                                            pionki2[xz][yz]=0;
  106.                                                                            stop=1;
  107.                                                                            zazn=1;
  108.                                                                 }
  109.                                                                 }
  110.                                          
  111.                                                                
  112.                                          }
  113.                                          if(pionki1[xz][yz]==0 && xz-x==1 && yz-y==1 && stop!=1)  //warunki prawidłowego ruchu (PRAWO DOL)
  114.                                          {
  115.                                                    pionki1[xz][yz]=1;
  116.                                                    pionki1[x][y]=0;
  117.                                                    zazn=1;
  118.                                                    runda++;
  119.                                          }
  120.                                          if(pionki1[xz][yz]==0 && xz-x==1 && yz-y==-1 && stop!=1)  //warunki prawidłowego ruchu (LEWO DOL)
  121.                                          {
  122.                                                    pionki1[xz][yz]=1;
  123.                                                    pionki1[x][y]=0;
  124.                                                    zazn=1;
  125.                                                    runda++;
  126.                                          }
  127.                                          
  128.                                  if(x==xz && y==yz)                  //gdy zaznaczymy te samo pole
  129.                                  {
  130.                                           pionki1[xz][yz]=1;
  131.                                           zazn=0;
  132.                                  }
  133.                              
  134.                               }
  135.                               licz++;  
  136.                         }
  137.                         if(xz==0)                                    //gdy pierwsza wspolrzedna przesuniecia = 0
  138.                         {                                          
  139.                                  zazn=1;
  140.                         }
  141.      }
  142.      if(pionki1[x][y]==0)                                            //gdy pole ktore zaznaczamy = 0, przerywa funkcje i nie zaznacza
  143.      {
  144.                           zazn=1;                                          
  145.                           break;
  146.      }
  147. }
  148. while(zazn==0);
  149. }
  150.  
  151. void pion2()
  152. {
  153.    
  154. do
  155. {
  156.      if(pionki2[x][y]==2)                                            // przesuwanie PIONKOW 2
  157.      {
  158.                         SetConsoleTextAttribute (kon,10);                   // kolor X                                
  159.                         cout << endl <<  "xz: ";
  160.                         cin >> xz;
  161.                         if(xz!=0)
  162.                         {
  163.                                  
  164.                                  SetConsoleTextAttribute (kon,11);          //kolor Y
  165.                                  cout << "yz: ";
  166.                                  cin >> yz;
  167.                                  if(xz%2 && yz%2 || (xz%2)==0 && (yz%2)==0)
  168.                                  {
  169.                                          if(pionki2[xz][yz]==0 && xz-x==-1 && yz-y==-1)  //warunki prawidłowego ruchu (LEWO GORA)
  170.                                          {
  171.                                                    pionki2[xz][yz]=2;
  172.                                                    pionki2[x][y]=0;
  173.                                                    zazn=1;
  174.                                                    runda++;
  175.                                                    
  176.                                          }
  177.                                          if(pionki2[xz][yz]==0 && xz-x==-1 && yz-y==1)  //warunki prawidłowego ruchu (PRAWO GORA)
  178.                                          {
  179.                                                    pionki2[xz][yz]=2;
  180.                                                    pionki2[x][y]=0;
  181.                                                    zazn=1;
  182.                                                    runda++;
  183.                                          }
  184.                                  
  185.                                          
  186.                                          
  187.                                  if(x==xz && y==yz)                  //gdy zaznaczymy te samo pole
  188.                                  {
  189.                                           pionki2[xz][yz]=2;
  190.                                           zazn=0;
  191.                                           }
  192.                              
  193.                               }
  194.                               licz++;  
  195.                         }
  196.                         if(xz==0)                                    //gdy pierwsza wspolrzedna przesuniecia = 0
  197.                         {
  198.                                  zazn=1;
  199.                         }
  200.      }
  201.      if(pionki2[x][y]==0)                                            //gdy pole ktore zaznaczamy = 0, przerywa funkcje i nie zaznacza
  202.      {
  203.                           zazn=1;                                          
  204.                           break;
  205.      }
  206.      
  207. }
  208. while(zazn==0);
  209. }          
  210. void wypisz_szach()                                            // funkcja wypisujaca szachownice
  211. {
  212. do
  213. {
  214.      licz=0;
  215.      system("cls");
  216.      SetConsoleTextAttribute (kon,11);                           // kolor Y
  217.      cout << "  12345678" << endl
  218.           << "  ________" << endl;
  219.      SetConsoleTextAttribute (kon,15);    
  220.          
  221.      for(int i=1; i<=8; i++)
  222.      {
  223.              SetConsoleTextAttribute (kon,10);                   // kolor X
  224.              cout << i << "|";
  225.              SetConsoleTextAttribute (kon,15);
  226.              for(int k=1; k<=8; k++)
  227.              {
  228.                      SetConsoleTextAttribute (kon,15);
  229.                      if(i%2 && (k%2)==0 || (i%2)==0 && k%2)       // kolorowanie szachownicy      
  230.                      {
  231.                             SetConsoleTextAttribute (kon,2);        
  232.                      }        
  233.                      if(i==x && k==y && zazn==0)                     // kolorowanie zaznaczenia
  234.                             {
  235.                                     SetConsoleTextAttribute (kon,1);
  236.                                    
  237.                             }
  238.                      if(pionki1[i][k]==1)                            //konwersja pionki1 > szachownica
  239.                      {
  240.                                         szachownica[i][k]=1;
  241.                                         }
  242.                      
  243.                      if(pionki2[i][k]==2)                            //konwersja pionki2 > szachownica
  244.                      {
  245.                                         szachownica[i][k]=2;
  246.                                         }
  247.                                                            
  248.                      if(pionki1[i][k]==0 && pionki2[i][k]==0)        //gdy nie ma pionkow wypisuje 0
  249.                      {  
  250.                      szachownica[i][k]=0;
  251.                      }
  252.                      cout << szachownica[i][k];  
  253.              }
  254.              cout << endl;
  255.      }
  256.      
  257.      zazn=0;}
  258. while(licz==1);
  259. }    
  260.    
  261. int main()                                                // glowny program
  262. {
  263.    
  264. pion();                                                   //wypisanie pionkow    
  265. do
  266. {
  267.      wypisz_szach();                                       //wypisanie szachownicy
  268.      
  269.      
  270.      if((runda%2)==1)
  271.      {
  272.                      cout << endl << "Runda: " << runda << " - Gracz 1!";      // ruch GRACZA 1          
  273.                      SetConsoleTextAttribute (kon,10);
  274.                      cout << endl << "x: ";                                //zaznacza pionki na szachownicy
  275.                      cin >> x;
  276.                      if(x==0)
  277.                      {
  278.                              break;
  279.                      }
  280.                      SetConsoleTextAttribute (kon,11);
  281.                      cout << "y: ";
  282.                      cin >> y;
  283.                      wypisz_szach();
  284.                      pion1();                                              
  285.                      wypisz_szach();
  286.                      zazn=0;  
  287.      }
  288.      
  289.      if((runda%2==0))
  290.      {
  291.                      cout << endl << "Runda: " << runda << " - Gracz 2!";      // ruch GRACZA 2
  292.                      
  293.                      SetConsoleTextAttribute (kon,10);
  294.                      cout << endl << "x: ";                                //zaznacza pionki na szachownicy
  295.                      cin >> x;
  296.                      if(x==0)
  297.                      {
  298.                              break;
  299.                      }
  300.                      SetConsoleTextAttribute (kon,11);
  301.                      cout << "y: ";
  302.                      cin >> y;
  303.                      wypisz_szach();                  
  304.                      pion2();
  305.                                                                                      
  306.                      wypisz_szach();
  307.                      zazn=1;                                                           // naprawia bład przy niepotrzebnym zaznaczeniu po ruchu 2 gracza
  308.      }
  309.                                                            
  310.                                                              
  311. }
  312. while(x!=0);
  313.  
  314.  cin.ignore();
  315.  return 0;
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement