86 lines
1.6 KiB
C++
86 lines
1.6 KiB
C++
#ifndef _TESTSUITE_AI_H_
|
|
#define _TESTSUITE_AI_H_
|
|
|
|
#define MAX_TESTSUITE_ACTIONS 100
|
|
#define MAX_TESTUITE_CARDS 100
|
|
|
|
#include "../include/AIPlayer.h"
|
|
|
|
class TestSuiteActions{
|
|
public:
|
|
int nbitems;
|
|
string actions[MAX_TESTSUITE_ACTIONS];
|
|
void add(string action);
|
|
TestSuiteActions();
|
|
void cleanup();
|
|
};
|
|
|
|
class TestSuitePlayerZone{
|
|
public:
|
|
int cards[MAX_TESTUITE_CARDS];
|
|
int nbitems;
|
|
void add(int cardid);
|
|
TestSuitePlayerZone();
|
|
void cleanup();
|
|
};
|
|
|
|
class TestSuitePlayerData{
|
|
public:
|
|
int life;
|
|
ManaCost * manapool;
|
|
TestSuitePlayerZone zones[5];
|
|
TestSuitePlayerData();
|
|
~TestSuitePlayerData();
|
|
void cleanup();
|
|
|
|
};
|
|
|
|
|
|
|
|
class TestSuiteState{
|
|
public:
|
|
int phase;
|
|
void parsePlayerState(int playerId, string s);
|
|
TestSuiteState();
|
|
TestSuitePlayerData playerData[2];
|
|
void cleanup();
|
|
};
|
|
class TestSuite{
|
|
public:
|
|
float timerLimit;
|
|
int currentAction;
|
|
TestSuiteState initState;
|
|
TestSuiteState endState;
|
|
TestSuiteActions actions;
|
|
string files[128];
|
|
int nbfiles;
|
|
int currentfile;
|
|
void load(const char * filename);
|
|
TestSuite(const char * filename);
|
|
void initGame();
|
|
int assertGame();
|
|
MTGPlayerCards * buildDeck(MTGAllCards * collection, int playerId);
|
|
string getNextAction();
|
|
int phaseStrToInt(string s);
|
|
MTGCardInstance * getCardByMTGId(int mtgid);
|
|
Interruptible * getActionByMTGId(int mtgid);
|
|
int loadNext();
|
|
void cleanup();
|
|
int Log(const char * text);
|
|
|
|
};
|
|
|
|
class TestSuiteAI:public AIPlayer{
|
|
public:
|
|
TestSuite * suite;
|
|
float timer;
|
|
TestSuiteAI(MTGAllCards * collection,TestSuite * suite, int playerId);
|
|
virtual int Act(float dt);
|
|
virtual int displayStack(){return 1;}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|