Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.67 KB | None | 0 0
  1. #include<iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct
  7. {
  8.     char znak;
  9.     bool damkaCz = false;
  10.     bool damkaB = false;
  11.     bool pionekCz = false;
  12.     bool pionekB = false;
  13. } kwadrat;
  14.  
  15. void wypiszSzachownice(char wynik[32][32]);
  16. void utworzSzachownice(kwadrat tab[8][8]);
  17. void wyczyscSzachownice(kwadrat tab[8][8]);
  18. void postawPionek(kwadrat tab[8][8]);
  19. void menu(int x, kwadrat tab[8][8]);
  20.  
  21.  
  22. int main()
  23. {
  24.     kwadrat tab[8][8];
  25.     int x=0;
  26.     for (int i = 0; i<8; ++i)
  27.     {
  28.         for (int j = 0; j<8; ++j)
  29.         {
  30.             if ((i + j) % 2 == 0) tab[i][j].znak = '#';
  31.             else tab[i][j].znak = ' ';
  32.         }
  33.     }
  34.     cout << "Program pozwala utworzyc szachownice i stawiac na niej pionki. " << endl;
  35.     menu(x, tab);
  36.  
  37.  
  38.     return 0;
  39. }
  40.  
  41. void menu(int x, kwadrat tab[8][8])
  42. {
  43.     cout << "Wybierz co chcesz zrobic:\n1. Wypisz szachownice\n2. Postaw pionek\n3. Wyczysc szachownice\n4. Wyjdz z programu" << endl;
  44.     cin >> x;
  45.  
  46.     switch (x)
  47.     {
  48.     case 1:
  49.         utworzSzachownice(tab);
  50.         menu(x, tab);
  51.         break;
  52.     case 2:
  53.         postawPionek(tab);
  54.         menu(x, tab);
  55.         break;
  56.     case 3:
  57.         wyczyscSzachownice(tab);
  58.         menu(x, tab);
  59.         break;
  60.     case 4:
  61.         exit(1);
  62.         break;
  63.     default:
  64.         cout << "Wybrales niewlasciwa opcje! Sprobuj ponownie." << endl;
  65.         menu(x, tab);
  66.     }
  67. }
  68.  
  69. void wypiszSzachownice(char wynik[32][32])
  70. {
  71.     for (int i = 0; i < 32; ++i)
  72.     {
  73.         for (int j = 0; j < 32; ++j)
  74.             cout << wynik[i][j];
  75.         cout << endl;
  76.     }
  77. }
  78.  
  79. void postawPionek(kwadrat tab[8][8])
  80. {
  81.     int w, k, d;
  82.     cout << "Wybierz pole(pierwsze pole ma wspolrzedne 1x1)" << endl;
  83.     cout << "Wiersz: "; cin >> w; cout << "Kolumna: "; cin >> k; cout << endl;
  84.     if (w <= 0 || w >= 9 || k <= 0 || k >= 9)
  85.     {
  86.         cout << "Wybrales pole poza szachownica!" << endl;
  87.     }
  88.     else
  89.     {
  90.         cout << "Wybierz typ pionka:" << endl;
  91.         cout << "1. Pionek Czarny\n2. Pionek Bialy\n3. Damka Czarna\n4. Damka Biala" << endl;
  92.         cin >> d;
  93.         switch (d) {
  94.         case 1:
  95.             tab[w - 1][k - 1].pionekCz = true;
  96.             break;
  97.         case 2:
  98.             tab[w - 1][k - 1].pionekB = true;
  99.             break;
  100.         case 3:
  101.             tab[w - 1][k - 1].damkaCz = true;
  102.             break;
  103.         case 4:
  104.             tab[w - 1][k - 1].damkaB = true;
  105.             break;
  106.         default:
  107.             cout << "Wybrales nieprawidlowa opcje! Sprobuj jeszcze raz" << endl;
  108.             postawPionek(tab);
  109.         }
  110.     }
  111.  
  112. }
  113.  
  114. void utworzSzachownice(kwadrat tab[8][8])
  115. {
  116.     char wynik[32][32];
  117.  
  118.     for (int i = 0; i<32; ++i)
  119.     {
  120.         for (int j = 0; j<32; ++j)
  121.         {
  122.             if (!tab[i / 4][j / 4].damkaCz || !tab[i / 4][j / 4].damkaB || !tab[i / 4][j / 4].pionekCz || !tab[i / 4][j / 4].pionekB) {
  123.                 wynik[i][j] = tab[i / 4][j / 4].znak;
  124.             }
  125.             if (tab[i / 4][j / 4].damkaCz)
  126.             {
  127.                 if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
  128.                 {
  129.                     wynik[i][j] = 'X';
  130.                 }
  131.                 else
  132.                 {
  133.                     wynik[i][j] = tab[i / 4][j / 4].znak;
  134.                 }
  135.             }
  136.             if (tab[i / 4][j / 4].damkaB)
  137.             {
  138.                 if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
  139.                 {
  140.                     wynik[i][j] = 'O';
  141.                 }
  142.                 else
  143.                 {
  144.                     wynik[i][j] = tab[i / 4][j / 4].znak;
  145.                 }
  146.             }
  147.             if (tab[i / 4][j / 4].pionekB)
  148.             {
  149.                 if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
  150.                 {
  151.                     wynik[i][j] = 'o';
  152.                 }
  153.                 else
  154.                 {
  155.                     wynik[i][j] = tab[i / 4][j / 4].znak;
  156.                 }
  157.             }
  158.             if (tab[i / 4][j / 4].pionekCz)
  159.             {
  160.                 if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
  161.                 {
  162.                     wynik[i][j] = 'x';
  163.                 }
  164.                 else
  165.                 {
  166.                     wynik[i][j] = tab[i / 4][j / 4].znak;
  167.                 }
  168.             }
  169.         }
  170.     }
  171.     wypiszSzachownice(wynik);
  172. }
  173.  
  174. void wyczyscSzachownice(kwadrat tab[8][8])
  175. {
  176.     char wynik[32][32];
  177.  
  178.     for (int i = 0; i<32; ++i)
  179.     {
  180.         for (int j = 0; j<32; ++j)
  181.         {
  182.                 wynik[i][j] = tab[i / 4][j / 4].znak;
  183.         }
  184.     }
  185.     wypiszSzachownice(wynik);
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement