lab6/ConsoleApplication1/ConsoleApplication1.cpp

54 lines
820 B
C++
Raw Permalink Normal View History

2022-05-17 11:42:02 +00:00
#include <iostream>
2022-05-17 12:02:39 +00:00
#include <vector>
2022-05-17 11:42:02 +00:00
using namespace std;
2022-05-17 12:02:39 +00:00
struct Params {
int life = 3;
int movement = 4;
int pos[2];
};
class Enemy: protected Params {
virtual void move() {};
friend void killAi(Enemy);
};
template <class TT>
class Palladin : public Enemy {
TT stamina;
string weapon = "sword";
int mana = 10;
public:
void move(int x, int y) {
if (movement > x && movement > y) {
pos[0] = x;
pos[1] = y;
}
}
};
void killAi(Enemy e) {
e.life = 0;
}
template <class TTTT>
TTTT upgradeAi(TTTT e) {
return e;
}
2022-05-17 11:42:02 +00:00
int main()
{
2022-05-17 12:02:39 +00:00
Palladin<vector<int>> jerzy;
Enemy kretoszczur;
jerzy.move(1, 1);
killAi(jerzy);
killAi(kretoszczur);
upgradeAi(jerzy);
upgradeAi(kretoszczur);
upgradeAi("kolonia");
2022-05-17 11:42:02 +00:00
}