Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. #include <cstdlib>
  5. #include <iomanip>
  6.  
  7. using namespace std;
  8.  
  9. /*class invader{
  10. private:
  11.     bool hp;
  12.     int boost;
  13. public:
  14.     invader(bool hp, int boost) : hp(hp), boost(boost) {}
  15.  
  16.     bool isHp() const {
  17.         return hp;
  18.     }
  19.  
  20.     void setHp(bool hp) {
  21.         invader::hp = hp;
  22.     }
  23.  
  24.     int getBoost() const {
  25.         return boost;
  26.     }
  27.  
  28.     void setBoost(int boost) {
  29.         invader::boost = boost;
  30.     }
  31. };*/
  32.  
  33. class defender{
  34. private:
  35.     int dmg;
  36.     int position;
  37. public:
  38.     defender(int dmg, int position) : dmg(dmg), position(position) {}
  39.  
  40.     int getDmg() const {
  41.         return dmg;
  42.     }
  43.  
  44.     void incDmg() {
  45.         defender::dmg = dmg + 1;
  46.     }
  47.  
  48.     void decDmg() {
  49.         if(defender::dmg>1) defender::dmg = dmg - 1;
  50.     }
  51.  
  52.     int getPosition() const {
  53.         return position;
  54.     }
  55.  
  56.     void setPosition(int position) {
  57.         defender::position = position;
  58.     }
  59. };
  60.  
  61. int rand(int n){
  62.     return rand()%n;
  63. }
  64.  
  65. vector<queue<int> > mapa(int k, int b){
  66.     vector<queue<int> > plansza;
  67.     for (int i = 0; i < k; i++) {
  68.         queue<int> kolumna;
  69.         for (int j = 0; j < b; j++) {
  70.             kolumna.push(i+j);
  71.         }
  72.         plansza.push_back(kolumna);
  73.     }
  74.     return plansza;
  75. }
  76.  
  77. void move(vector<queue<int> >& plansza, defender& postac){
  78.     int ruch, damage=postac.getDmg();
  79.     cout<<"Ktora kolumne chcesz zaatakowac?\n";
  80.     cin>>ruch;
  81.     if(damage>plansza[ruch].size()) damage=plansza[ruch].size();
  82.     for(int i = 0; i<damage; i++){
  83.         if(plansza[ruch].front()==1) postac.incDmg();
  84.         if(plansza[ruch].front()==2) postac.decDmg();
  85.         plansza[ruch].pop();
  86.     }
  87.     postac.setPosition(ruch);
  88. }
  89.  
  90. void rysuj(vector<queue<int> > plansza, int w) {
  91.     //system("cls");
  92.     for (int i = 1; i <= plansza.size(); i++) {
  93.         cout << "----";
  94.         if (i < plansza.size()) cout << "--";
  95.         else cout << endl;
  96.     }
  97.     for (int i = 0; i < w-1; i++) {
  98.         for (int j = 0; j < plansza.size(); j++) {
  99.             if(plansza[j].empty()!=1) {
  100.                 cout <<setfill('#')<<setw(4)<<plansza[j].front()<<"  ";
  101.                 plansza[j].pop();
  102.             }
  103.             else cout<<"      ";
  104.         }
  105.         cout<<endl;
  106.     }
  107. }
  108.  
  109. int main() {
  110.     srand(time(NULL));
  111.     vector<queue<int> > plansza;
  112.     int w, k, b, r, n;
  113.     k=3;
  114.     b=4;
  115.     defender gracz(5,k/2);
  116.     plansza = mapa(k,b);
  117.     move(plansza,gracz);
  118.     rysuj(plansza, 10);
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement