public void Run()
{
// Create a test animal
IAnimal anAnimal = null; // ...so this should be changed, of course :-)
// In each iteration, the Animal should
// 1) Act in a way that depends on its current state.
// 2) Possibly change its state.
for (int i = 0; i < 10; i++)
{
anAnimal.Act();
anAnimal.CurrentState = GenerateAnimalState();
}
}