Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- const char znak_puste_pole = '.';
- const char znak_gracz_1 = 'X';
- const char znak_gracz_2 = 'O';
- const int wysokosc_mapy = 4;
- const int szerokosc_mapy = 4;
- const char znak_zaznaczony = '*';
- bool czy_ruch_gracza__1 = true;
- int wybierany_pionek_y = 0;
- int wybierany_pionek_x = 0;
- int gdzie_chcesz_przeniesc_pionek_y = 0;
- int gdzie_chcesz_przeniesc_pionek_x = 0;
- void rysiu_mape_narysuj (char mapa [wysokosc_mapy][szerokosc_mapy])
- {
- for (int ii = 0; ii < wysokosc_mapy ; ii++ )
- {
- for(int i = 0; i < szerokosc_mapy ; i ++)
- {
- cout << mapa[ii][i];
- }
- cout << endl;
- }
- }
- void odsiwerz_mape(char mapa [wysokosc_mapy][szerokosc_mapy])
- {
- system("cls");
- rysiu_mape_narysuj(mapa);
- }
- void przygotuj_mape(char mapa [wysokosc_mapy][szerokosc_mapy]) {
- for (int ii = 0; ii < wysokosc_mapy ; ii++ )
- {
- for(int i = 0; i < szerokosc_mapy ; i ++)
- {
- mapa [ii][i] = znak_puste_pole;
- }
- }
- }
- void przygotuj_graczy (char mapa [wysokosc_mapy][szerokosc_mapy])
- {
- mapa [0][0] = znak_gracz_1;
- mapa [0][szerokosc_mapy - 1] = znak_gracz_2;
- mapa [wysokosc_mapy - 1][0] = znak_gracz_2;
- mapa [wysokosc_mapy - 1][szerokosc_mapy - 1] = znak_gracz_1;
- }
- void wybur_pionka_gracza (char mapa [wysokosc_mapy] [szerokosc_mapy])
- {
- cout << "ktorym pionkiem chcesz sie ruszyc, napisz koordynaty" << endl;
- cout << "x";
- cin >> wybierany_pionek_x;
- cout << endl << "y";
- cin >> wybierany_pionek_y;
- if (mapa [wybierany_pionek_y][wybierany_pionek_x] == znak_gracz_1 && czy_ruch_gracza__1 == true)
- {
- mapa[wybierany_pionek_y][wybierany_pionek_x] = znak_zaznaczony;
- }
- else if (mapa [wybierany_pionek_y][wybierany_pionek_x] == znak_gracz_2 && czy_ruch_gracza__1 == false)
- {
- mapa[wybierany_pionek_y][wybierany_pionek_x] = znak_zaznaczony;
- }
- else
- {
- wybur_pionka_gracza(mapa);
- return;
- }
- system("cls");
- rysiu_mape_narysuj(mapa);
- }
- bool czy_dozwolony(char mapa [wysokosc_mapy][szerokosc_mapy])
- {
- int rurznica_x = abs(wybierany_pionek_x - gdzie_chcesz_przeniesc_pionek_x);
- int rurznica_y = abs(wybierany_pionek_y - gdzie_chcesz_przeniesc_pionek_y);
- if (mapa [gdzie_chcesz_przeniesc_pionek_y][gdzie_chcesz_przeniesc_pionek_x] != znak_puste_pole)
- {
- return false;
- }
- if(rurznica_x > 2 || rurznica_y > 2)
- {
- return false;
- }
- if (rurznica_x == 0 && rurznica_y == 0)
- {
- return false;
- }
- return true;
- }
- bool czy_ruch_pojedynczy()
- {
- int rurznica_x = abs(wybierany_pionek_x - gdzie_chcesz_przeniesc_pionek_x);
- int rurznica_y = abs(wybierany_pionek_y - gdzie_chcesz_przeniesc_pionek_y);
- if (rurznica_x < 2 && rurznica_y < 2) {return true;}
- return false;
- }
- void czy_w_okul_mnie_jakis_wrog(char mapa [wysokosc_mapy][szerokosc_mapy], bool czy_aktualny_gracz_1)
- {
- char znak;
- int x = gdzie_chcesz_przeniesc_pionek_x;
- int y = gdzie_chcesz_przeniesc_pionek_y;
- if (czy_aktualny_gracz_1 == true)
- {
- znak = 'X';
- }
- else
- {
- znak = 'O';
- }
- for (int i = x - 1 ; i <= x + 1 ; i++)
- {
- for (int j = y + 1; j >= y - 1 ; j--)
- {
- if (i == wysokosc_mapy || i == -1 || j == szerokosc_mapy || j == -1){}
- else if (mapa [j] [i] != znak_puste_pole)
- {
- mapa [j] [i] = znak;
- }
- }
- }
- }
- void przesuniecie_pionka_gracza (char mapa [wysokosc_mapy][szerokosc_mapy])
- {
- cout << "wypisz koordynaty na ktore chcesz przeniesc swuj pionek" << endl;
- cout << "x";
- cin >> gdzie_chcesz_przeniesc_pionek_x;
- cout << endl << "y";
- cin >> gdzie_chcesz_przeniesc_pionek_y;
- if (czy_ruch_gracza__1 == true && czy_dozwolony(mapa) == true)
- {
- if (czy_ruch_pojedynczy() == false)
- {
- mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_1;
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_puste_pole;
- czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
- }
- else
- {
- mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_1;
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_1;
- czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
- }
- }
- else if (czy_ruch_gracza__1 == false && czy_dozwolony(mapa) == true)
- {
- if (czy_ruch_pojedynczy() == false)
- {
- mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_2;
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_puste_pole;
- czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
- }
- else
- {
- mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_2;
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_2;
- czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
- }
- }
- else
- {
- if (czy_ruch_gracza__1 == true)
- {
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_1;
- }
- else
- {
- mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_2;
- }
- odsiwerz_mape(mapa);
- wybur_pionka_gracza(mapa);
- przesuniecie_pionka_gracza(mapa);
- return;
- }
- system("cls");
- rysiu_mape_narysuj(mapa);
- }
- int main()
- {
- char mapa [wysokosc_mapy] [szerokosc_mapy];
- przygotuj_mape(mapa);
- przygotuj_graczy(mapa);
- rysiu_mape_narysuj(mapa);
- while (true) {
- wybur_pionka_gracza(mapa);
- przesuniecie_pionka_gracza(mapa);
- if (czy_ruch_gracza__1 == true)
- {
- czy_ruch_gracza__1 = false;
- }
- else
- {
- czy_ruch_gracza__1 = true;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement