1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| class Bot
{
public :
enum TelnetState
{
Waiting,
Receiving,
Idle
}
ManageBot();
private:
//Ces trois methodes privées gèrent les actions et le changement d'état
NothingReceived();
SomethingReceived();
SomethingSent();
TelnetState mCurrentTelnetState;
};
ManageBot()
{
switch (mCurrentTelnetState)
{
//Dans ce cas, Waiting et Receiving réagissent aux mêmes transitions
//On aurait pu les regrouper, mais je préfère avoir du code lisible et
//compréhensible
case Waiting:
if (TelnetConnection.Received())
{
SomethingReceived();
}
else
{
NothingReceived();
}
break;
case Receiving:
if (TelnetConnection.Received())
{
SomethingReceived();
}
else
{
NothingReceived();
}
break;
case Idle:
//Là on fait agir le bot puisque les données sont arrivées
//On se basera alors sur son état de vie (en pause, en pas à pas, etc...)
//pour voir si l'on peut le faire agir réellement
//Et sur son état comportemental et sur l'état de l'environnement, etc...
//pour voir ce qu'il souhaite faire
break;
}
} |
Partager