diff options
Diffstat (limited to 'world.h')
-rw-r--r-- | world.h | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -45,6 +45,12 @@ using Script = vector<Instruction>; class Team; class World; +enum class WorldAction{ + none, + die, + move, +}; + class Robot{ Location ip={0,0}; int waited=0; @@ -53,7 +59,7 @@ class Robot{ uint16_t* resolveVar(const Argument &arg,World &world); Instruction resolve(World &world); int calcDuration(Instruction &ins); - void execute(Instruction &ins,World &world); + WorldAction execute(Instruction &ins,World &world); void advanceIP(); bool ipInRange() const; @@ -69,7 +75,7 @@ public: void load(int idx,const Script &scr); - void tick(World &world); + WorldAction tick(World &world); }; class Team{ @@ -79,6 +85,8 @@ public: }; class World{ + Robot** targetbotptr(const Robot *r); + public: Robot *board[SIZE][SIZE]; @@ -86,6 +94,7 @@ public: ~World(); Robot& create(const Team *team,int iset,int nbanks,bool mobile); + Robot& createInFront(const Robot *caller,const Team *team,int iset,int nbanks,bool mobile); void tick(); Robot* targetbot(const Robot *r); |