Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <vector>
- #include <stdlib.h>
- #include <windows.h>
- using namespace std;
- struct Position
- {
- int x;
- int y;
- };
- class Object
- {
- Position pozycja;
- public:
- int getX(); // wyciaganie parametrow
- int getY();
- void setX(int x); // ustawianie parametrow
- void setY(int y);
- };
- int Object::getX()
- {
- return pozycja.x;
- }
- int Object::getY()
- {
- return pozycja.y;
- }
- void Object::setX(int x)
- {
- pozycja.x = x;
- }
- void Object::setY(int y)
- {
- pozycja.y = y;
- }
- /************************************************************/
- class Player : public Object
- {
- int life;
- int str;
- vector < int > tab;
- public:
- Player(int x, int y,int zycie);
- Player(){};
- void setPrzemiot(int a);
- int getstr();
- void zwiekszZycie(int b);
- };
- Player::Player(int x, int y,int zycie)
- {
- this->life = zycie;
- setX(x);
- setY(y);
- str = 3;
- }
- void Player::setPrzemiot(int a)
- {
- tab.push_back(a);
- str = str + a;
- }
- int Player::getstr()
- {
- return str;
- }
- void Player::zwiekszZycie(int b)
- {
- life = life + b;
- }
- /************************************************************/
- class Interactive
- {
- public:
- void interact(Player player);
- };
- /************************************************************/
- class Item : public Object, public Interactive
- {
- int strength;
- public:
- Item(int x, int y,int sila);
- void interact(Player player);
- };
- Item::Item(int x, int y,int sila)
- {
- this->strength = sila;
- setX(x);
- setY(y);
- }
- void Item::interact(Player player)
- {
- // jak wspolrzedne sie pokrywaja ladujemy nowy przedmiot
- if (getX() == player.getX() && getY() == player.getY())
- {
- player.setPrzemiot(strength);
- // usuniencie z mapy
- setX(0);
- setY(0);
- }
- }
- /************************************************************/
- class Enemy : public Object, public Interactive
- {
- int strength;
- public:
- Enemy(int x, int y,int sila);
- void interact(Player player);
- };
- Enemy::Enemy(int x, int y,int sila)
- {
- this->strength = sila;
- setX(x);
- setY(y);
- }
- void Enemy::interact(Player player)
- {
- if (getX() == player.getX() && getY() == player.getY())
- {
- if(strength > player.getstr())
- {
- cout << "ZOSTALES POKONANY!" << endl;
- }
- else
- {
- // usuniencie z mapy
- setX(0);
- setY(0);
- }
- }
- }
- /************************************************************/
- class Potion : public Object, public Interactive
- {
- int vitality;
- public:
- Potion(int x, int y,int zycie);
- void interact(Player player);
- };
- Potion::Potion(int x, int y,int zycie)
- {
- this->vitality = zycie;
- setX(x);
- setY(y);
- }
- void Potion::interact(Player player)
- {
- if (getX() == player.getX() && getY() == player.getY())
- {
- player.zwiekszZycie(vitality);
- setX(0);
- setY(0);
- }
- }
- /************************************************************/
- class Board
- {
- int x;
- int y;
- Player gracz;
- vector < Enemy > przeciwnicy;
- vector < Potion > misktury;
- vector < Item > przedmioty;
- int **mapa;
- public:
- Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p);
- void Rysuj();
- void Zeruj();
- };
- Board::Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p )
- {
- this->x = a;
- this->y = b;
- this->gracz = g;
- this->przeciwnicy = e;
- this->misktury = m;
- this->przedmioty = p;
- mapa = new int * [x];
- for (int i =0; i< x; i++)
- {
- mapa[i] = new int [y];
- }
- }
- void Board::Zeruj()
- {
- // zerowanie macierzy
- for(int i = 0; i<x; i++)
- {
- for (int j = 0; j<y; j++)
- {
- mapa[i][j] = 0;
- }
- }
- }
- void Board::Rysuj()
- {
- mapa[gracz.getX()][gracz.getY()] = 1;
- // wypelnianie
- for (int i = 0; i < x; i++)
- {
- for (int j = 0; j < y; j++)
- {
- for (int k = 0; k < misktury.size(); k++)
- {
- if (i == misktury[k].getX() && j == misktury[k].getY())
- {
- mapa[i][j] = 2;
- }
- }
- for (int k = 0; k < przeciwnicy.size(); k++)
- {
- if (i == przeciwnicy[k].getX() && j == przeciwnicy[k].getY())
- {
- mapa[i][j] = 3;
- }
- }
- for (int k = 0; k < przedmioty.size(); k++)
- {
- if (i == przedmioty[k].getX() && j == przedmioty[k].getY())
- {
- mapa[i][j] = 4;
- }
- }
- }
- }
- for(int i = 0; i<x; i++)
- {
- for (int j = 0; j<y; j++)
- {
- if(mapa[i][j] == 2)
- {
- cout << "M";
- }
- else if(mapa[i][j] == 3)
- {
- cout << "E";
- }
- else if (mapa[i][j] == 4)
- {
- cout << "P";
- }
- else if (mapa[i][j] == 1)
- {
- cout << "G";
- }
- else
- {
- cout << " ";
- }
- }
- cout << endl;
- }
- }
- int main()
- {
- Player rycerz(4,4,4);
- Enemy andrzej1(2, 2, 2);
- Enemy andrzej2(2, 1, 2);
- Enemy andrzej3(2, 5, 2);
- Potion mana(5,5,5);
- Potion mana2(7,7,7);
- Item miecz(6,2,3);
- Item miecz2(8,8,8);
- // wypelnianie wektorow
- vector < Enemy > wrogowie;
- vector < Potion > mikstury;
- vector < Item > miecze;
- wrogowie.push_back(andrzej1);
- wrogowie.push_back(andrzej2);
- wrogowie.push_back(andrzej3);
- mikstury.push_back(mana);
- mikstury.push_back(mana2);
- miecze.push_back(miecz);
- miecze.push_back(miecz2);
- // tworzenie mapy
- // Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p )
- Board narnia(10,10,rycerz,wrogowie,mikstury,miecze);
- narnia.Zeruj();
- narnia.Rysuj();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement