Sommaire

Tableau d’unions

À partir de notre union Ennemi défini ci-dessus, qui regroupe nos quatre structures Dragon, Troll, Nain et Orc, nous allons créer un tableau d’Ennemis qui contient des types différents de structures et réunit tous les ennemis. Ce tableau donne la possibilité de gérer simultanément tous les ennemis, quels que soient leurs types. Pour la démonstration, nous nous occupons de l’initialisation, de l’affichage et de l’avance des ennemis.

Chaque type d’ennemi dispose d’une fonction d’initialisation spécifique, en quelque sorte un constructeur. Toutes sont construites sur le même modèle. Voici par exemple celle pour le type Dragon :

Dragon CreateDragon()  
{  
       Dragon d;  
       d.type = DRAGON;  
       d.x = rand() % 100;  
       d.y = rand() % 100;  
       d.dx = rand() % 100;  
       d.dy = rand() % 100;  
       d.flamme = rand() % 1000;  
       d.cuirasse = rand() % 1000;  
       return d; 
}

Ensuite, nous écrivons une fonction d’initialisation pour un tableau d’Ennemis. À l’issue de l’appel, le tableau passé en paramètre contient différents types d’ennemis obtenus aléatoirement :

void InitEnnemis(Ennemi e[], int nb)  
{  
    int ...