From 411d2f6d6a6e5370d33f0f54b2f2de7147a9d977 Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Mon, 6 Sep 2021 20:11:36 +0200 Subject: started ai --- game/ai/action.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 game/ai/action.h (limited to 'game/ai/action.h') diff --git a/game/ai/action.h b/game/ai/action.h new file mode 100644 index 0000000..12da451 --- /dev/null +++ b/game/ai/action.h @@ -0,0 +1,52 @@ +#ifndef ACTION_H +#define ACTION_H + +#include +#include + +namespace ai { + +enum actype { + attack, heal, convert, build, train, trade, move, tech +}; + +class action { + public: + action (actype type, int v) : + type(type), v(v) {} + action (actype type, int x, int y, int v) : + type(type), x(x), y(y), v(v) {} + action (actype type, int x, int y, int mx, int my) : + type(type), x(x), y(y), mx(mx), my(my) {} + action (actype type, int x, int y, int mx, int my, int v) : + type(type), x(x), y(y), mx(mx), my(my), v(v) {} + action (actype type, int x, int y, int mx, int my, int tx, int ty) : + type(type), x(x), y(y), mx(mx), my(my), tx(tx), ty(ty) {} + action (actype type, int x, int y, int mx, int my, int tx, int ty, int v) : + type(type), x(x), y(y), mx(mx), my(my), tx(tx), ty(ty), v(v) {} + + action (const action& rhs) { + type = rhs.type; x = rhs.x; y = rhs.y; mx = rhs.mx; my = rhs.my; + tx = rhs.tx; ty = rhs.ty; v = rhs.v; + } + action& operator=(const action& rhs) { + type = rhs.type; x = rhs.x; y = rhs.y; mx = rhs.mx; my = rhs.my; + tx = rhs.tx; ty = rhs.ty; v = rhs.v; + } + + actype type; + int x, y; // start + int mx, my; // moved + int tx, ty; // target + int v; // value (id of trainee, building or f/g trade, or tech id) + + float heuristic { 0 }; + + std::string to_string (); +}; + +bool compare_action(action a, action b); + +} + +#endif \ No newline at end of file -- cgit v1.2.3-54-g00ecf