febbe

PlantCell.cpp

May 13th, 2021
455
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "PlantCell.h"
  2.  
  3. PlantCell::PlantCell(const string &id, const int &initialEnergy) : Cell("PC" + id, initialEnergy, 7)
  4. {
  5.  
  6. }
  7.  
  8. Cell *PlantCell::reproduce()
  9. {
  10.     if(getEnergy() > 400 && getAge() > 3){ //do reprodukcji dojdzie tylko wtedy, gdy komorka jest zywa i posiada dostatecznie duzo energii
  11.         int finalEnergy = getEnergy()/2; //nowo utworzona komorka bedzie posiadala polowe posiadanej przez rodzica energii
  12.         setEnergy(finalEnergy); //pomniejszamy energie komorki o polowe
  13.         setChildCount(getChildCount()+1); //zwiekszamy ilosc dzieci o jeden
  14.         return new PlantCell(getName() + ":" + to_string(getChildCount()), finalEnergy); //zwracamy wskaznik na nowa komorke
  15.     }
  16.     else {
  17.         return nullptr; //w przeciwnym wypadku zwracamy pusty wskaznik - nie zostala stworzona zadna nowa komorka
  18.     }
  19. }
  20.  
  21. void PlantCell::gainEnergy()
  22. {
  23.     beginPhotosynthesis(); //komorka roslinna pozyskuje energie przez fotosynteze
  24. }
  25. void PlantCell::beginPhotosynthesis()
  26. {
  27.     //duuuzo reakcji z wieloma skladnikami
  28.     int energy = getEnergy() + ((rand() % 600 + 70));
  29.     setEnergy(energy); //przyjmujemy ze ilosc energii byla zalezna od wieluu czynnikow
  30.     //skorzystamy wiec z bliblioteki rand, aby wygenerowala losowa ilosc energii od 40 do 400 jednostek
  31. }
  32.  
RAW Paste Data