104 lines
1.9 KiB
C++
104 lines
1.9 KiB
C++
#ifndef _TESTSUITE_AI_H_
|
|
#define _TESTSUITE_AI_H_
|
|
|
|
#ifdef TESTSUITE
|
|
|
|
#define MAX_TESTSUITE_ACTIONS 100
|
|
#define MAX_TESTUITE_CARDS 100
|
|
|
|
#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 TestSuite;
|
|
class TestSuiteState{
|
|
public:
|
|
int phase;
|
|
void parsePlayerState(int playerId, string s);
|
|
TestSuiteState();
|
|
TestSuitePlayerData playerData[2];
|
|
void cleanup();
|
|
};
|
|
|
|
|
|
class TestSuitePregame{
|
|
public:
|
|
virtual void performTest() = 0;
|
|
};
|
|
|
|
class TestSuite{
|
|
public:
|
|
MTGAllCards* collection;
|
|
int summoningSickness;
|
|
bool forceAbility;
|
|
int gameType;
|
|
float timerLimit;
|
|
unsigned int seed;
|
|
int aiMaxCalls;
|
|
int currentAction;
|
|
TestSuiteState initState;
|
|
TestSuiteState endState;
|
|
TestSuiteActions actions;
|
|
string files[1024];
|
|
int nbfiles;
|
|
int currentfile;
|
|
int nbFailed, nbTests, nbAIFailed, nbAITests;
|
|
int load(const char * filename);
|
|
TestSuite(const char * filename,MTGAllCards* _collection);
|
|
void initGame();
|
|
void pregameTests();
|
|
int assertGame();
|
|
MTGPlayerCards * buildDeck(int playerId);
|
|
string getNextAction();
|
|
Interruptible * getActionByMTGId(int mtgid);
|
|
int loadNext();
|
|
void cleanup();
|
|
static int Log(const char * text);
|
|
|
|
};
|
|
|
|
class TestSuiteAI:public AIPlayerBaka{
|
|
public:
|
|
TestSuite * suite;
|
|
float timer;
|
|
|
|
TestSuiteAI(TestSuite * suite, int playerId);
|
|
virtual int Act(float dt);
|
|
MTGCardInstance * getCard(string action);
|
|
virtual int displayStack();
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
#endif
|