Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include <cstdlib>
- using namespace std;
- typedef struct
- {
- char znak;
- bool damkaCz = false;
- bool damkaB = false;
- bool pionekCz = false;
- bool pionekB = false;
- } kwadrat;
- void wypiszSzachownice(char wynik[32][32]);
- void utworzSzachownice(kwadrat tab[8][8]);
- void wyczyscSzachownice(kwadrat tab[8][8]);
- void postawPionek(kwadrat tab[8][8]);
- void menu(int x, kwadrat tab[8][8]);
- int main()
- {
- kwadrat tab[8][8];
- int x=0;
- for (int i = 0; i<8; ++i)
- {
- for (int j = 0; j<8; ++j)
- {
- if ((i + j) % 2 == 0) tab[i][j].znak = '#';
- else tab[i][j].znak = ' ';
- }
- }
- cout << "Program pozwala utworzyc szachownice i stawiac na niej pionki. " << endl;
- menu(x, tab);
- return 0;
- }
- void menu(int x, kwadrat tab[8][8])
- {
- cout << "Wybierz co chcesz zrobic:\n1. Wypisz szachownice\n2. Postaw pionek\n3. Wyczysc szachownice\n4. Wyjdz z programu" << endl;
- cin >> x;
- switch (x)
- {
- case 1:
- utworzSzachownice(tab);
- menu(x, tab);
- break;
- case 2:
- postawPionek(tab);
- menu(x, tab);
- break;
- case 3:
- wyczyscSzachownice(tab);
- menu(x, tab);
- break;
- case 4:
- exit(1);
- break;
- default:
- cout << "Wybrales niewlasciwa opcje! Sprobuj ponownie." << endl;
- menu(x, tab);
- }
- }
- void wypiszSzachownice(char wynik[32][32])
- {
- for (int i = 0; i < 32; ++i)
- {
- for (int j = 0; j < 32; ++j)
- cout << wynik[i][j];
- cout << endl;
- }
- }
- void postawPionek(kwadrat tab[8][8])
- {
- int w, k, d;
- cout << "Wybierz pole(pierwsze pole ma wspolrzedne 1x1)" << endl;
- cout << "Wiersz: "; cin >> w; cout << "Kolumna: "; cin >> k; cout << endl;
- if (w <= 0 || w >= 9 || k <= 0 || k >= 9)
- {
- cout << "Wybrales pole poza szachownica!" << endl;
- }
- else
- {
- cout << "Wybierz typ pionka:" << endl;
- cout << "1. Pionek Czarny\n2. Pionek Bialy\n3. Damka Czarna\n4. Damka Biala" << endl;
- cin >> d;
- switch (d) {
- case 1:
- tab[w - 1][k - 1].pionekCz = true;
- break;
- case 2:
- tab[w - 1][k - 1].pionekB = true;
- break;
- case 3:
- tab[w - 1][k - 1].damkaCz = true;
- break;
- case 4:
- tab[w - 1][k - 1].damkaB = true;
- break;
- default:
- cout << "Wybrales nieprawidlowa opcje! Sprobuj jeszcze raz" << endl;
- postawPionek(tab);
- }
- }
- }
- void utworzSzachownice(kwadrat tab[8][8])
- {
- char wynik[32][32];
- for (int i = 0; i<32; ++i)
- {
- for (int j = 0; j<32; ++j)
- {
- 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) {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- if (tab[i / 4][j / 4].damkaCz)
- {
- if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
- {
- wynik[i][j] = 'X';
- }
- else
- {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- }
- if (tab[i / 4][j / 4].damkaB)
- {
- if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
- {
- wynik[i][j] = 'O';
- }
- else
- {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- }
- if (tab[i / 4][j / 4].pionekB)
- {
- if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
- {
- wynik[i][j] = 'o';
- }
- else
- {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- }
- if (tab[i / 4][j / 4].pionekCz)
- {
- if ((i % 4 == 1 || i % 4 == 2) && (j % 4 == 1 || j % 4 == 2))
- {
- wynik[i][j] = 'x';
- }
- else
- {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- }
- }
- }
- wypiszSzachownice(wynik);
- }
- void wyczyscSzachownice(kwadrat tab[8][8])
- {
- char wynik[32][32];
- for (int i = 0; i<32; ++i)
- {
- for (int j = 0; j<32; ++j)
- {
- wynik[i][j] = tab[i / 4][j / 4].znak;
- }
- }
- wypiszSzachownice(wynik);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement