Advertisement
Holek

Untitled

Jun 22nd, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <vector>
  4. #include <utility>
  5. using namespace std;
  6.  
  7. /*
  8. Napisz interfejs Przeciwnik, zawierający abstrakcyjną metodę int zycie().
  9. Napisz klasy Smok i Wilk, realizujące interfejs Przeciwnik. Jako liczbę punktów życia smoki
  10. powinny zwracać 7, a wilki 4.
  11. Następnie napisz klasę Plansza. Klasa powinna zawierać (jako prywatne pole) kontener
  12. wskaźników na obiekty realizujące interfejs Przeciwnik (np. vector lub deque). W konstruktorze
  13. klasy Plansza należy wypełnić kontener kilkoma dynamicznie tworzonymi obiektami klas Smok
  14. i Wilk (liczby wilków i smoków mogą być generowane losowo, albo np. przyjmowane jako
  15. argument konstruktora).
  16. Dodatkowo klasa Plansza powinna zawierać metodę int poziomTrudnosci(). Poziom trudności
  17. danej planszy powinien być obliczany jako suma punktów życia wszystkich znajdujących się
  18. na niej przeciwników. Kod powinien być napisany w taki sposób, aby ewentualne późniejsze
  19. dodanie klas nowych przeciwników nie wymagało modyfikacji tej metody.
  20.  
  21. */
  22. class Przeciwnik {
  23. public:
  24.     virtual int zycie()=0;
  25.  
  26. };
  27. class Smok : public Przeciwnik{
  28. public:
  29.     virtual int zycie(){
  30.         return 7;
  31.     }
  32. };
  33. class Wilk : public Przeciwnik{
  34. public:
  35.     virtual int zycie(){
  36.         return 4;
  37.     }
  38. };
  39. class Plansza {
  40. private:
  41.     vector <Przeciwnik *> przec;
  42. public:
  43.     Plansza(int wilki,int smoki){
  44.         int i=0;
  45.         int x;
  46.         Przeciwnik *a[smoki+wilki]={};
  47.         for(i=0;i<smoki;i++){
  48.             a[i] = new Smok;
  49.             przec.push_back(a[i]);
  50.  
  51.         }
  52.  
  53.         for(x=(smoki-1);x<(wilki+smoki);x++){
  54.             a[x] = new Wilk;
  55.             przec.push_back(a[x]);
  56.         }
  57.     }
  58.     int poziomTrudnosci(){
  59.         int suma=0;
  60.         for( size_t i = 0; i < this->przec.size(); i++) {
  61.             suma+=przec[i]->zycie();
  62.  
  63.         }
  64.         return suma;
  65.     }
  66.  
  67. };
  68.  
  69. int main()
  70. {
  71.     Plansza x(5,10);
  72.     cout << x.poziomTrudnosci();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement