Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.97 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5. const char znak_puste_pole = '.';
  6. const char znak_gracz_1 = 'X';
  7. const char znak_gracz_2 = 'O';
  8. const int wysokosc_mapy = 4;
  9. const int szerokosc_mapy = 4;
  10. const char znak_zaznaczony = '*';
  11. bool czy_ruch_gracza__1 = true;
  12. int wybierany_pionek_y = 0;
  13. int wybierany_pionek_x = 0;
  14. int gdzie_chcesz_przeniesc_pionek_y = 0;
  15. int gdzie_chcesz_przeniesc_pionek_x = 0;
  16.  
  17.  
  18.  
  19. void rysiu_mape_narysuj (char mapa [wysokosc_mapy][szerokosc_mapy])
  20. {
  21.     for (int ii = 0; ii < wysokosc_mapy ; ii++ )
  22.     {
  23.         for(int i = 0; i < szerokosc_mapy ; i ++)
  24.         {
  25.             cout << mapa[ii][i];
  26.         }
  27.     cout << endl;
  28.     }
  29. }
  30.  
  31. void odsiwerz_mape(char mapa [wysokosc_mapy][szerokosc_mapy])
  32. {
  33.     system("cls");
  34.     rysiu_mape_narysuj(mapa);
  35. }
  36.  
  37. void przygotuj_mape(char mapa [wysokosc_mapy][szerokosc_mapy]) {
  38.  
  39.     for (int ii = 0; ii < wysokosc_mapy ; ii++ )
  40.     {
  41.         for(int i = 0; i < szerokosc_mapy ; i ++)
  42.         {
  43.             mapa [ii][i] = znak_puste_pole;
  44.         }
  45.     }
  46. }
  47.  
  48. void przygotuj_graczy (char mapa [wysokosc_mapy][szerokosc_mapy])
  49. {
  50.     mapa [0][0] = znak_gracz_1;
  51.     mapa [0][szerokosc_mapy - 1] = znak_gracz_2;
  52.     mapa [wysokosc_mapy - 1][0] = znak_gracz_2;
  53.     mapa [wysokosc_mapy - 1][szerokosc_mapy - 1] = znak_gracz_1;
  54. }
  55.  
  56. void wybur_pionka_gracza (char mapa [wysokosc_mapy] [szerokosc_mapy])
  57. {
  58.     cout << "ktorym pionkiem chcesz sie ruszyc, napisz koordynaty" << endl;
  59.     cout << "x";
  60.     cin >> wybierany_pionek_x;
  61.     cout << endl << "y";
  62.     cin >> wybierany_pionek_y;
  63.  
  64.     if (mapa [wybierany_pionek_y][wybierany_pionek_x] == znak_gracz_1 && czy_ruch_gracza__1 == true)
  65.     {
  66.     mapa[wybierany_pionek_y][wybierany_pionek_x] = znak_zaznaczony;
  67.     }
  68.     else if (mapa [wybierany_pionek_y][wybierany_pionek_x] == znak_gracz_2 && czy_ruch_gracza__1 == false)
  69.     {
  70.     mapa[wybierany_pionek_y][wybierany_pionek_x] = znak_zaznaczony;
  71.     }
  72.     else
  73.     {
  74.     wybur_pionka_gracza(mapa);
  75.     return;
  76.     }
  77.     system("cls");
  78.     rysiu_mape_narysuj(mapa);
  79. }
  80. bool czy_dozwolony(char mapa [wysokosc_mapy][szerokosc_mapy])
  81. {
  82.     int rurznica_x = abs(wybierany_pionek_x - gdzie_chcesz_przeniesc_pionek_x);
  83.     int rurznica_y = abs(wybierany_pionek_y - gdzie_chcesz_przeniesc_pionek_y);
  84.     if (mapa [gdzie_chcesz_przeniesc_pionek_y][gdzie_chcesz_przeniesc_pionek_x] != znak_puste_pole)
  85.     {
  86.         return false;
  87.     }
  88.     if(rurznica_x > 2 || rurznica_y > 2)
  89.     {
  90.         return false;
  91.     }
  92.     if (rurznica_x == 0 && rurznica_y == 0)
  93.     {
  94.         return false;
  95.     }
  96.     return true;
  97. }
  98.  
  99. bool czy_ruch_pojedynczy()
  100. {
  101.     int rurznica_x = abs(wybierany_pionek_x - gdzie_chcesz_przeniesc_pionek_x);
  102.     int rurznica_y = abs(wybierany_pionek_y - gdzie_chcesz_przeniesc_pionek_y);
  103. if (rurznica_x < 2 && rurznica_y < 2) {return true;}
  104. return false;
  105.  
  106. }
  107.  
  108. void czy_w_okul_mnie_jakis_wrog(char mapa [wysokosc_mapy][szerokosc_mapy], bool czy_aktualny_gracz_1)
  109. {
  110. char znak;
  111. int x = gdzie_chcesz_przeniesc_pionek_x;
  112. int y = gdzie_chcesz_przeniesc_pionek_y;
  113.  
  114. if (czy_aktualny_gracz_1 == true)
  115. {
  116.    znak = 'X';
  117. }
  118. else
  119. {
  120.     znak = 'O';
  121. }
  122.  
  123.  
  124. for (int i = x - 1 ; i <= x + 1 ; i++)
  125. {
  126.     for (int j = y + 1; j >= y - 1 ; j--)
  127.     {
  128.         if (i == wysokosc_mapy || i == -1 || j == szerokosc_mapy || j == -1){}
  129.         else if (mapa [j] [i] != znak_puste_pole)
  130.         {
  131.             mapa [j] [i] = znak;
  132.         }
  133.     }
  134. }
  135.  
  136. }
  137.  
  138.  
  139.  
  140. void przesuniecie_pionka_gracza (char mapa [wysokosc_mapy][szerokosc_mapy])
  141. {
  142.     cout << "wypisz koordynaty na ktore chcesz przeniesc swuj pionek" << endl;
  143.     cout << "x";
  144.     cin >> gdzie_chcesz_przeniesc_pionek_x;
  145.     cout << endl << "y";
  146.     cin >> gdzie_chcesz_przeniesc_pionek_y;
  147.  
  148.     if (czy_ruch_gracza__1 == true && czy_dozwolony(mapa) == true)
  149.     {
  150.  
  151.         if (czy_ruch_pojedynczy() == false)
  152.         {
  153.             mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_1;
  154.             mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_puste_pole;
  155.             czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
  156.         }
  157.         else
  158.         {
  159.             mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_1;
  160.             mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_1;
  161.             czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
  162.         }
  163.     }
  164.     else if (czy_ruch_gracza__1 == false && czy_dozwolony(mapa) == true)
  165.     {
  166.  
  167.         if (czy_ruch_pojedynczy() == false)
  168.         {
  169.             mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_2;
  170.             mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_puste_pole;
  171.             czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
  172.         }
  173.         else
  174.         {
  175.             mapa [gdzie_chcesz_przeniesc_pionek_y] [gdzie_chcesz_przeniesc_pionek_x] = znak_gracz_2;
  176.             mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_2;
  177.             czy_w_okul_mnie_jakis_wrog(mapa, czy_ruch_gracza__1);
  178.         }
  179.     }
  180.     else
  181.     {
  182.        if (czy_ruch_gracza__1 == true)
  183.        {
  184.         mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_1;
  185.        }
  186.         else
  187.        {
  188.         mapa [wybierany_pionek_y][wybierany_pionek_x] = znak_gracz_2;
  189.        }
  190.        odsiwerz_mape(mapa);
  191.        wybur_pionka_gracza(mapa);
  192.  
  193.  
  194.  
  195.  
  196.        przesuniecie_pionka_gracza(mapa);
  197.  
  198.  
  199.  
  200.  
  201.        return;
  202.     }
  203.     system("cls");
  204.     rysiu_mape_narysuj(mapa);
  205. }
  206.  
  207.  
  208.  
  209.  
  210.  
  211. int main()
  212. {
  213.     char mapa [wysokosc_mapy] [szerokosc_mapy];
  214.     przygotuj_mape(mapa);
  215.     przygotuj_graczy(mapa);
  216.     rysiu_mape_narysuj(mapa);
  217.  
  218.     while (true) {
  219.         wybur_pionka_gracza(mapa);
  220.         przesuniecie_pionka_gracza(mapa);
  221.         if (czy_ruch_gracza__1 == true)
  222.         {
  223.             czy_ruch_gracza__1 = false;
  224.         }
  225.         else
  226.         {
  227.             czy_ruch_gracza__1 = true;
  228.         }
  229.     }
  230.  
  231.  
  232.  
  233.  
  234.     return 0;
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement