Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- #include <vector>
- #include <utility>
- using namespace std;
- /*
- Napisz interfejs Przeciwnik, zawierający abstrakcyjną metodę int zycie().
- Napisz klasy Smok i Wilk, realizujące interfejs Przeciwnik. Jako liczbę punktów życia smoki
- powinny zwracać 7, a wilki 4.
- Następnie napisz klasę Plansza. Klasa powinna zawierać (jako prywatne pole) kontener
- wskaźników na obiekty realizujące interfejs Przeciwnik (np. vector lub deque). W konstruktorze
- klasy Plansza należy wypełnić kontener kilkoma dynamicznie tworzonymi obiektami klas Smok
- i Wilk (liczby wilków i smoków mogą być generowane losowo, albo np. przyjmowane jako
- argument konstruktora).
- Dodatkowo klasa Plansza powinna zawierać metodę int poziomTrudnosci(). Poziom trudności
- danej planszy powinien być obliczany jako suma punktów życia wszystkich znajdujących się
- na niej przeciwników. Kod powinien być napisany w taki sposób, aby ewentualne późniejsze
- dodanie klas nowych przeciwników nie wymagało modyfikacji tej metody.
- */
- class Przeciwnik {
- public:
- virtual int zycie()=0;
- };
- class Smok : public Przeciwnik{
- public:
- virtual int zycie(){
- return 7;
- }
- };
- class Wilk : public Przeciwnik{
- public:
- virtual int zycie(){
- return 4;
- }
- };
- class Plansza {
- private:
- vector <Przeciwnik *> przec;
- public:
- Plansza(int wilki,int smoki){
- int i=0;
- int x;
- Przeciwnik *a[smoki+wilki]={};
- for(i=0;i<smoki;i++){
- a[i] = new Smok;
- przec.push_back(a[i]);
- }
- for(x=(smoki-1);x<(wilki+smoki);x++){
- a[x] = new Wilk;
- przec.push_back(a[x]);
- }
- }
- int poziomTrudnosci(){
- int suma=0;
- for( size_t i = 0; i < this->przec.size(); i++) {
- suma+=przec[i]->zycie();
- }
- return suma;
- }
- };
- int main()
- {
- Plansza x(5,10);
- cout << x.poziomTrudnosci();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement