Advertisement
MeehoweCK

Untitled

Dec 8th, 2018
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. // Zwierze.cpp
  2. #include "Zwierze.h"
  3. #include <ctime>
  4. #include <cstdlib>
  5. #include "Swiat.h"
  6. #include "Wilk.h"
  7.  
  8. void Zwierze::Akcja()
  9. {
  10.     // if getzyje ==false
  11.     srand(static_cast<unsigned>(time(nullptr)));                 // TO DO: losuj od 0 do 7
  12.     int los;
  13.     int x;
  14.     int y;
  15.  
  16.     do
  17.     {
  18.         los = rand() % 8;
  19.         x = poz_x;
  20.         y = poz_y;
  21.  
  22.         /*switch (los)
  23.         {
  24.         case 0: //lewy gorny rog
  25.  
  26.         case 1: //gora
  27.  
  28.         case 2: // prawy gorny rog
  29.  
  30.         case 3:
  31.  
  32.         case 4:
  33.  
  34.         case 5:
  35.  
  36.         case 6:
  37.  
  38.         case 7:
  39.  
  40.         }
  41.         */
  42.     } while (x < 0 || y < 0 || x >= wymiar || y >= wymiar);
  43.     if (world->czyZajete(x, y))
  44.     {
  45.         //wywolanie Kolizji
  46.     }
  47.     poz_x = x;
  48.     poz_y = y;
  49. }
  50.  
  51. //osobno metoda rozmnazanie
  52.  
  53. void Zwierze::Kolizja(Organizm* atakujacy, Organizm* broniacy)
  54. {
  55.     // kolizja - domyslnie walka, chyba ze :
  56.     // przy kolizji z organizmem tego samego gatunku nie dochodzi do walki, oba zwierzêta pozostaj¹ na swoich miejscach, ko³o nich pojawia siê trzecie zwierze, tego samego gatunku.
  57.     //WALKA: jeden z organizmów zwyciê¿a, zabijaj¹c (np. wilk) lub odganiaj¹c (np. ¿ó³w) konkurenta. ; Przy równej sile zwyciê¿a organizm, który zaatakowa³
  58.     /*
  59.     ROZMNAZANIE:
  60.     if (atakujacy->getZnak() == broniacy->getZnak())
  61.     {
  62.         // wiemy, ze to sa organizmy tego samego typu
  63.         cout << "Rozmnazanie" << endl;
  64.         int x = atakujacy->getPoz_x();
  65.         int y = atakujacy->getPoz_y();
  66.         int los;
  67.         do
  68.         {
  69.             los = rand() % 8;
  70.  
  71.             /*switch (los)
  72.             {
  73.             case 0: //lewy gorny rog
  74.  
  75.             case 1: //gora
  76.  
  77.             case 2: // prawy gorny rog
  78.  
  79.             case 3:
  80.  
  81.             case 4:
  82.  
  83.             case 5:
  84.  
  85.             case 6:
  86.  
  87.             case 7:
  88.  
  89.             }
  90.         } while (x < 0 || y < 0 || x >= wymiar || y >= wymiar);
  91.         poz_x = x;
  92.         poz_y = y;
  93.         int sila2 = atakujacy->getSila();
  94.         int inicjatywa2 = atakujacy->getInicjatywa();
  95.         char znak2 = atakujacy->getZnak();
  96.         Zwierze* pointer;
  97.         switch (znak2)
  98.         {
  99.         case 'W':
  100.             //wilk
  101.             pointer = new Wilk(poz_x, poz_y, this->world);
  102.             break;
  103.  
  104.             //case 'O':
  105.             //owca itd...
  106.  
  107.         }
  108.         if(pointer)
  109.             this->world->DodajOrganizm(pointer);
  110.  
  111.  
  112.  
  113.     }*/
  114.     if (atakujacy->getSila() >= broniacy->getSila())
  115.     {
  116.         cout << "Zwycieza atakujacy!" << endl;
  117.         broniacy->smierc();
  118.     }
  119.  
  120.     else if (atakujacy->getSila() < broniacy->getSila())
  121.     {
  122.         cout << "Zwycieza broniacy!" << endl;
  123.         atakujacy->smierc();
  124.     }
  125. }
  126.  
  127. char Zwierze::Rysowanie()
  128. {
  129.     return getZnak();
  130. }
  131.  
  132. Zwierze::Zwierze(int o_poz_x, int o_poz_y, int o_sila, int o_inicjatywa, char o_znak, Swiat* swiat) : Organizm(o_poz_x, o_poz_y, o_sila, o_inicjatywa, o_znak, swiat)
  133. {
  134. }
  135.  
  136.  
  137. Zwierze::~Zwierze()
  138. {
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement