Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include "Head.h"
- #include "Organizm.h"
- #include "Swiat.h"
- #include "Wilk.h"
- using namespace std;
- /*class Swiat
- {
- friend class Interfejs;
- friend class Organizm;
- private:
- vector <Organizm*> Organizmy;
- public:
- Swiat();
- ~Swiat();
- bool dodawanieOrganizmu();
- void RysujSwiat();
- void sortujOrganizmy();
- void WykonajTure();
- Organizm* czyZajete(int x, int y);
- };*/
- Swiat::Swiat()
- {
- Punkt punkt;
- for (int i = 0; i < 10; ++i)
- {
- do
- {
- punkt.x = rand() % wymiar;
- punkt.y = rand() % wymiar;
- } while (czyZajete(punkt.x, punkt.y));
- dodawanieOrganizmu('W', punkt);
- }
- }
- Swiat::~Swiat()
- {
- for (unsigned i = 0; i < Organizmy.size(); ++i)
- delete Organizmy[i];
- Organizmy.clear();
- }
- bool Swiat::dodawanieOrganizmu(char znak, Punkt punkt)
- {
- if (Organizmy.size() >= (wymiar * wymiar))
- return false;
- Organizmy.push_back(nullptr);
- switch (znak)
- {
- case 'W':
- Organizmy[Organizmy.size() - 1] = new Wilk(punkt.x, punkt.y, this);
- return true;
- default:
- return false;
- }
- }
- void Swiat::RysujSwiat()
- {
- for (int i = 0; i < (wymiar + 2); ++i)
- cout << "_";
- cout << endl;
- for (int i = 0; i < wymiar; ++i)
- {
- cout << "|";
- for (int j = 0; j < wymiar; ++j)
- {
- if (czyZajete(i, j))
- cout << czyZajete(i, j)->rysowanie();
- else
- cout << " ";
- }
- cout << "|" << endl;
- }
- for (int i = 0; i < (wymiar + 2); ++i)
- cout << "_";
- cout << endl;
- }
- void Swiat::sortujOrganizmy()
- {
- for (unsigned i = 0; i < Organizmy.size(); ++i)
- for (unsigned j = 0; j < (Organizmy.size() - i - 1); ++j)
- {
- if (Organizmy[j]->inicjatywa < Organizmy[j + 1]->inicjatywa)
- swap(Organizmy[j], Organizmy[j + 1]);
- else if(Organizmy[j]->inicjatywa == Organizmy[j + 1]->inicjatywa)
- if(Organizmy[j]->wiek < Organizmy[j + 1]->wiek)
- swap(Organizmy[j], Organizmy[j + 1]);
- }
- }
- void Swiat::WykonajTure()
- {
- sortujOrganizmy();
- for (unsigned i = 0; i < Organizmy.size(); ++i)
- Organizmy[i]->Akcja();
- }
- Organizm* Swiat::czyZajete(int x, int y)
- {
- for (unsigned i = 0; i < Organizmy.size(); ++i)
- if (Organizmy[i]->poz_x == x && Organizmy[i]->poz_y == y)
- return Organizmy[i];
- return nullptr;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement