Advertisement
MeehoweCK

Untitled

Dec 22nd, 2018
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include "Head.h"
  4. #include "Organizm.h"
  5. #include "Swiat.h"
  6. #include "Wilk.h"
  7.  
  8. using namespace std;
  9.  
  10. /*class Swiat
  11. {
  12.     friend class Interfejs;
  13.     friend class Organizm;
  14. private:
  15.     vector <Organizm*> Organizmy;
  16. public:
  17.     Swiat();
  18.     ~Swiat();
  19.     bool dodawanieOrganizmu();
  20.     void RysujSwiat();
  21.     void sortujOrganizmy();
  22.     void WykonajTure();
  23.     Organizm* czyZajete(int x, int y);
  24. };*/
  25.  
  26. Swiat::Swiat()
  27. {
  28.     Punkt punkt;
  29.  
  30.     for (int i = 0; i < 10; ++i)
  31.     {
  32.         do
  33.         {
  34.             punkt.x = rand() % wymiar;
  35.             punkt.y = rand() % wymiar;
  36.         } while (czyZajete(punkt.x, punkt.y));
  37.  
  38.         dodawanieOrganizmu('W', punkt);
  39.     }
  40. }
  41.  
  42. Swiat::~Swiat()
  43. {
  44.     for (unsigned i = 0; i < Organizmy.size(); ++i)
  45.         delete Organizmy[i];
  46.     Organizmy.clear();
  47. }
  48.  
  49. bool Swiat::dodawanieOrganizmu(char znak, Punkt punkt)
  50. {
  51.     if (Organizmy.size() >= (wymiar * wymiar))
  52.         return false;
  53.     Organizmy.push_back(nullptr);
  54.     switch (znak)
  55.     {
  56.     case 'W':
  57.         Organizmy[Organizmy.size() - 1] = new Wilk(punkt.x, punkt.y, this);
  58.         return true;
  59.     default:
  60.         return false;
  61.     }
  62. }
  63.  
  64. void Swiat::RysujSwiat()
  65. {
  66.     for (int i = 0; i < (wymiar + 2); ++i)
  67.         cout << "_";
  68.     cout << endl;
  69.     for (int i = 0; i < wymiar; ++i)
  70.     {
  71.         cout << "|";
  72.         for (int j = 0; j < wymiar; ++j)
  73.         {
  74.             if (czyZajete(i, j))
  75.                 cout << czyZajete(i, j)->rysowanie();
  76.             else
  77.                 cout << " ";
  78.         }
  79.         cout << "|" << endl;
  80.     }
  81.     for (int i = 0; i < (wymiar + 2); ++i)
  82.         cout << "_";
  83.     cout << endl;
  84. }
  85.  
  86. void Swiat::sortujOrganizmy()
  87. {
  88.     for (unsigned i = 0; i < Organizmy.size(); ++i)
  89.         for (unsigned j = 0; j < (Organizmy.size() - i - 1); ++j)
  90.         {
  91.             if (Organizmy[j]->inicjatywa < Organizmy[j + 1]->inicjatywa)
  92.                 swap(Organizmy[j], Organizmy[j + 1]);
  93.             else if(Organizmy[j]->inicjatywa == Organizmy[j + 1]->inicjatywa)
  94.                 if(Organizmy[j]->wiek < Organizmy[j + 1]->wiek)
  95.                     swap(Organizmy[j], Organizmy[j + 1]);
  96.         }
  97. }
  98.  
  99. void Swiat::WykonajTure()
  100. {
  101.     sortujOrganizmy();
  102.     for (unsigned i = 0; i < Organizmy.size(); ++i)
  103.         Organizmy[i]->Akcja();
  104. }
  105.  
  106. Organizm* Swiat::czyZajete(int x, int y)
  107. {
  108.     for (unsigned i = 0; i < Organizmy.size(); ++i)
  109.         if (Organizmy[i]->poz_x == x && Organizmy[i]->poz_y == y)
  110.             return Organizmy[i];
  111.     return nullptr;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement