diff --git a/ConsoleApplication1/ConsoleApplication1.cpp b/ConsoleApplication1/ConsoleApplication1.cpp index 9e013da..4c40c67 100644 --- a/ConsoleApplication1/ConsoleApplication1.cpp +++ b/ConsoleApplication1/ConsoleApplication1.cpp @@ -1,8 +1,53 @@ #include +#include using namespace std; +struct Params { + int life = 3; + int movement = 4; + int pos[2]; +}; + +class Enemy: protected Params { + virtual void move() {}; + friend void killAi(Enemy); +}; + +template + +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 + +TTTT upgradeAi(TTTT e) { + return e; +} + int main() { - cout << "Hello World!\n"; + Palladin> jerzy; + Enemy kretoszczur; + jerzy.move(1, 1); + killAi(jerzy); + killAi(kretoszczur); + + upgradeAi(jerzy); + upgradeAi(kretoszczur); + upgradeAi("kolonia"); }