Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <string>
  4. #include <vector>
  5. #include <stdlib.h>
  6. #include <windows.h>
  7. using namespace std;
  8.  
  9. struct Position
  10. {
  11.     int x;
  12.     int y;
  13. };
  14.  
  15. class Object
  16. {
  17.          Position pozycja;
  18.     public:  
  19.         int getX(); // wyciaganie parametrow
  20.         int getY();
  21.         void setX(int x); // ustawianie parametrow
  22.         void setY(int y);
  23. };
  24.  
  25. int Object::getX()
  26. {
  27.     return pozycja.x;
  28. }
  29.  
  30. int Object::getY()
  31. {
  32.     return pozycja.y;
  33. }
  34.  
  35. void Object::setX(int x)
  36. {
  37.     pozycja.x = x;
  38. }
  39.  
  40. void Object::setY(int y)
  41. {
  42.     pozycja.y = y;
  43. }
  44.  /************************************************************/
  45. class Player : public Object
  46. {
  47.     int life;
  48.     int str;
  49.     vector < int > tab;
  50.     public:
  51.         Player(int x, int y,int zycie);
  52.         Player(){};
  53.         void setPrzemiot(int a);
  54.         int getstr();
  55.         void zwiekszZycie(int b);
  56. };
  57.  
  58. Player::Player(int x, int y,int zycie)
  59. {
  60.     this->life = zycie;
  61.     setX(x);
  62.     setY(y);
  63.     str = 3;
  64. }
  65.  
  66. void Player::setPrzemiot(int a)
  67. {
  68.     tab.push_back(a);
  69.     str = str + a;
  70. }
  71.  
  72. int Player::getstr()
  73. {
  74.     return str;
  75. }
  76.  
  77. void Player::zwiekszZycie(int b)
  78. {
  79.     life = life + b;
  80. }
  81.  
  82.  /************************************************************/
  83. class Interactive
  84. {
  85.     public:
  86.         void interact(Player player);
  87. };
  88.  /************************************************************/
  89. class Item : public Object, public Interactive
  90. {
  91.     int strength;
  92.     public:
  93.         Item(int x, int y,int sila);
  94.         void interact(Player player);
  95.        
  96. };
  97.  
  98. Item::Item(int x, int y,int sila)
  99. {
  100.     this->strength = sila;
  101.     setX(x);
  102.     setY(y);
  103. }
  104.  
  105. void Item::interact(Player player)
  106. {
  107.     // jak wspolrzedne sie pokrywaja ladujemy nowy przedmiot
  108.     if (getX() == player.getX() && getY() == player.getY())
  109.     {
  110.         player.setPrzemiot(strength);
  111.         // usuniencie z mapy
  112.         setX(0);
  113.         setY(0);
  114.     }
  115. }
  116.  
  117.  /************************************************************/
  118. class Enemy : public Object, public Interactive
  119. {
  120.     int strength;
  121.         public:
  122.         Enemy(int x, int y,int sila);
  123.         void interact(Player player);
  124. };
  125.  
  126. Enemy::Enemy(int x, int y,int sila)
  127. {
  128.     this->strength = sila;
  129.     setX(x);
  130.     setY(y);
  131. }
  132.  
  133. void Enemy::interact(Player player)
  134. {
  135.     if (getX() == player.getX() && getY() == player.getY())
  136.     {
  137.         if(strength > player.getstr())
  138.         {
  139.             cout << "ZOSTALES POKONANY!" << endl;
  140.         }
  141.         else
  142.         {
  143.             // usuniencie z mapy
  144.             setX(0);
  145.             setY(0);
  146.         }
  147.     }
  148. }
  149.  
  150.  /************************************************************/
  151. class Potion : public Object, public Interactive
  152. {
  153.     int vitality;
  154.         public:
  155.         Potion(int x, int y,int zycie);
  156.         void interact(Player player);
  157.        
  158. };
  159.  
  160. Potion::Potion(int x, int y,int zycie)
  161. {
  162.     this->vitality = zycie;
  163.     setX(x);
  164.     setY(y);
  165. }
  166.  
  167. void Potion::interact(Player player)
  168. {
  169.     if (getX() == player.getX() && getY() == player.getY())
  170.     {
  171.         player.zwiekszZycie(vitality);
  172.         setX(0);
  173.         setY(0);   
  174.     }
  175. }
  176.  
  177. /************************************************************/
  178.  
  179. class Board
  180. {
  181.     int x;
  182.     int y;
  183.     Player gracz;
  184.     vector < Enemy > przeciwnicy;
  185.     vector < Potion > misktury;
  186.     vector < Item > przedmioty;
  187.     int **mapa;
  188.     public:
  189.         Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p);
  190.         void Rysuj();
  191.         void Zeruj();
  192. };
  193.  
  194. Board::Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p )
  195. {
  196.     this->x = a;
  197.     this->y = b;
  198.     this->gracz = g;
  199.     this->przeciwnicy = e;
  200.     this->misktury = m;
  201.     this->przedmioty = p;
  202.     mapa = new int * [x];
  203.     for (int i =0; i< x; i++)
  204.     {
  205.         mapa[i] = new int [y];
  206.     }
  207. }
  208.  
  209. void Board::Zeruj()
  210. {
  211.       // zerowanie macierzy
  212.     for(int i = 0; i<x; i++)
  213.     {
  214.         for (int j = 0; j<y; j++)
  215.         {
  216.                 mapa[i][j] = 0;
  217.         }
  218.     }  
  219. }
  220.  
  221. void Board::Rysuj()
  222. {
  223.    
  224.     mapa[gracz.getX()][gracz.getY()] = 1;
  225.     // wypelnianie
  226.    
  227.     for (int i = 0; i < x; i++)
  228.     {
  229.         for (int j = 0; j < y; j++)
  230.         {
  231.             for (int k = 0; k < misktury.size(); k++)
  232.             {
  233.                 if (i == misktury[k].getX() && j == misktury[k].getY())
  234.                 {
  235.                     mapa[i][j] = 2;
  236.                 }
  237.             }
  238.            
  239.             for (int k = 0; k < przeciwnicy.size(); k++)
  240.             {
  241.                 if (i == przeciwnicy[k].getX() && j == przeciwnicy[k].getY())
  242.                 {
  243.                     mapa[i][j] = 3;
  244.                 }
  245.             }
  246.            
  247.             for (int k = 0; k < przedmioty.size(); k++)
  248.             {
  249.                 if (i == przedmioty[k].getX() && j == przedmioty[k].getY())
  250.                 {
  251.                     mapa[i][j] = 4;
  252.                 }
  253.             }
  254.         }
  255.     }
  256.        
  257.     for(int i = 0; i<x; i++)
  258.     {
  259.         for (int j = 0; j<y; j++)
  260.         {
  261.               if(mapa[i][j] == 2)
  262.                {
  263.                    cout << "M";
  264.                }
  265.                    
  266.               else if(mapa[i][j] == 3)
  267.                {
  268.                     cout << "E";
  269.                }
  270.                
  271.               else if (mapa[i][j] == 4)
  272.                {
  273.                     cout << "P";
  274.                }
  275.                    
  276.                else if (mapa[i][j] == 1)
  277.                {
  278.                     cout << "G";
  279.                }   
  280.                 else
  281.                 {
  282.                     cout << " ";
  283.                 }  
  284.         }
  285.         cout << endl;
  286.     }
  287.        
  288. }
  289.  
  290. int main()
  291. {
  292.  
  293.     Player rycerz(4,4,4);
  294.     Enemy andrzej1(2, 2, 2);
  295.     Enemy andrzej2(2, 1, 2);
  296.     Enemy andrzej3(2, 5, 2);
  297.     Potion mana(5,5,5);
  298.     Potion mana2(7,7,7);
  299.     Item miecz(6,2,3);
  300.     Item miecz2(8,8,8);
  301.    
  302.     // wypelnianie wektorow
  303.     vector < Enemy > wrogowie;
  304.     vector < Potion > mikstury;
  305.     vector < Item > miecze;
  306.    
  307.     wrogowie.push_back(andrzej1);
  308.     wrogowie.push_back(andrzej2);
  309.     wrogowie.push_back(andrzej3);
  310.    
  311.     mikstury.push_back(mana);
  312.     mikstury.push_back(mana2);
  313.    
  314.     miecze.push_back(miecz);
  315.     miecze.push_back(miecz2);
  316.    
  317.     // tworzenie mapy
  318.     // Board(int a, int b, Player g, vector < Enemy > e, vector < Potion > m, vector < Item > p )
  319.     Board narnia(10,10,rycerz,wrogowie,mikstury,miecze);
  320.     narnia.Zeruj();
  321.     narnia.Rysuj();
  322.    
  323.   return 0;  
  324. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement