MeehoweCK

Untitled

Feb 22nd, 2021
755
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. enum class pole
  9. {
  10.     puste, poszukiwacz, mur, skarb, przeciwnik
  11. };
  12.  
  13. struct wspolrzedne
  14. {
  15.     short i;
  16.     short j;
  17.     short los;
  18. };
  19.  
  20. const short N = 33;
  21. pole plansza[N][N];
  22.  
  23. void uzupelnij_plansze()
  24. {
  25.     srand(time(nullptr));
  26.     vector<wspolrzedne> puste_pola;
  27.     wspolrzedne nowe;
  28.     for(short i = 0; i < N; ++i)
  29.         for(short j = 0; j < N; ++j)
  30.             if(i == 0 || i == N - 1 || j == 0 || j == N - 1 || ((i-1) * (j-1)) % 2 != 0)
  31.                 plansza[i][j] = pole::mur;
  32.             else
  33.             {
  34.                 plansza[i][j] = pole::puste;
  35.                 nowe.i = i;
  36.                 nowe.j = j;
  37.                 nowe.los = rand();
  38.                 puste_pola.push_back(nowe);
  39.             }
  40.     unsigned n = puste_pola.size();
  41.     for(unsigned i = 0; i < n - 1; ++i)
  42.         for(unsigned j = 0; j < n - i - 1; ++j)
  43.             if(puste_pola[j].los > puste_pola[j + 1].los)
  44.                 swap(puste_pola[j], puste_pola[j + 1]);
  45.     for(unsigned i = 0; i < 10; ++i)
  46.         plansza[puste_pola[i].i][puste_pola[i].j] = pole::przeciwnik;
  47.     plansza[puste_pola[10].i][puste_pola[10].j] = pole::poszukiwacz;
  48.     plansza[puste_pola[11].i][puste_pola[11].j] = pole::skarb;
  49. }
  50.  
  51. void wypisz_plansze()
  52. {
  53.     for(short i = 0; i < N; ++i)
  54.     {
  55.         for(short j = 0; j < N; ++j)
  56.         {
  57.             switch(plansza[i][j])
  58.             {
  59.             case pole::puste:
  60.                 cout << ' ';
  61.                 break;
  62.             case pole::mur:
  63.                 cout << '#';
  64.                 break;
  65.             case pole::poszukiwacz:
  66.                 cout << 'O';
  67.                 break;
  68.             case pole::skarb:
  69.                 cout << 'X';
  70.                 break;
  71.             case pole::przeciwnik:
  72.                 cout << '@';
  73.                 break;
  74.             }
  75.             cout << ' ';
  76.         }
  77.         cout << endl;
  78.     }
  79. }
  80.  
  81. int main()
  82. {
  83.     uzupelnij_plansze();
  84.     wypisz_plansze();
  85.     return 0;
  86. }
RAW Paste Data