ElderInternalIgnition
controleur.h File Reference

Fichier contenant la definition des fonctions du controleur. More...

#include "structures.h"
#include "affichage.h"

Go to the source code of this file.

Functions

void initJeu ()
 La fonction initialise les variable globales du package du jeu et de la Partie.
 
void ajouterUnJoueur (char *nomDuJoueur, EtatsJeu *etat)
 Fonction ajoutant un Joueur à la Partie et faisant passer la partie à l'état suivant. Si le joueur n'a pas correctement été ajouté, l'état reste le même. More...
 
int y_case_cliquee (int x_pixel, int y_pixel)
 La fonction retourne la ligne d'une case à partir de sa position en pixels. More...
 
int x_case_cliquee (int x_pixel, int y_pixel)
 La fonction retourne la colonne d'une case à partir de sa position en pixels. More...
 
int nbClasses ()
 Fonction renvoyer le nombre de classes contenues dans le package du jeu. More...
 
char ** obtenirNomsClasses ()
 Fonction renvoyant un tableau de chaine de caractères contenant les noms des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More...
 
unsigned short int * obtenirPVClasses ()
 Fonction renvoyant un tableau d'entiers correspondant aux PV de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More...
 
unsigned short int * obtenirManaClasses ()
 Fonction renvoyant un tableau d'entiers correspondant au mana de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More...
 
unsigned short int * obtenirMvtClasses ()
 Fonction renvoyant un tableau d'entiers correspondant aux points de mouvement de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More...
 
char ** obtenirSkinsClasses ()
 Fonction renvoyant un tableau de chaine de caractères contenant le chemin vers les Skins des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. Ici le chemin du Skin renvoyé est celui du "default". More...
 
void freeClasses (char **tab)
 La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur les classes. More...
 
int nbCartes ()
 Fonction renvoyer le nombre de cartes contenues dans le package du jeu. More...
 
char ** obtenirNomsCartes ()
 Fonction renvoyant un tableau de chaine de caractères contenant les noms des Cartes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More...
 
char ** obtenirDescriptionCarte ()
 Fonction renvoyant un tableau de chaine de caractères contenant les descriptions des Cartes. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More...
 
void freeCartes (char **)
 La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur la carte. More...
 
CasetrouverCase (Carte_Jeu *c, int x, int y)
 La fonction retourne un pointeur vers la case de coordonnées x,y. More...
 
int ajouterPersonnage (char *nomClasse, int numTab, int numJoueur)
 La fonction ajoute un personnage au tableau de personnages d'un Joueur à l'indice numTab(compris entre 0 et TAILLE_MAX_GROUPE). S'il y a déjà un personnage à l'indice numTab, l'ancien personnage est effacé du tableau. More...
 
int selectionnerCarte (char *nomCarte)
 La fonction ajoute la Carte dont le nom est en parrametre à la Partie. Les Terrains de la Carte sont initialisé à partir des cartes décrites en XML. More...
 
void initPositions ()
 La fonction initialise les positions des personnages sur la Carte. La carte de jeu doit être initialisée avant l'appel à cette fonction.
 
char * ObtenirRessourceTerrain (int x, int y)
 La fonction teste le type d'un Terrain aux coordonnées données et renvoie la ressource à afficher. L'utilisation de cette fonction pourrait se faire dans une boucle dans la SDL pour afficher la carte Case par Case. Il est d'abbord nécessaire de convertir les coordonnées "pixels" en coordonnées de cases de jeu. La carte doit être initialisées avant l'appel à cette fonction. More...
 
int personnagePresent (int x, int y)
 La fonction teste si un Personnage est présent aux coordonnées à tester. Les coordonnées doivent être convertir des "pixels" de la SDL en Cases de Jeu. More...
 
char * obtenirRessourcePersonnage (int x, int y)
 La fonction renvoie la ressource d'un Personnage présent aux coordonnées. More...
 
char * obtenirRessourcePersonnageNum (int numero)
 La fonction renvoie la ressource d'un Personnage dont le numero est celui définit dans la sdl. More...
 
void obtenirPositionPersonnage (int numero, int *x, int *y)
 La fonction modifie les parrametres x et y en entrée en fonction des coordonnées du Personnage dont le numero en parrametre est celui définit dans la sdl. More...
 
PersonnagetrouverPersonnage (Case *c)
 La fonction renvoie un pointeur vers le personnage présent sur la case en parametre. More...
 
void deplacement_personnage (int numPerso, int x, int y)
 La fonction permet de deplacer un personnage. More...
 
boolean case_accessible (int numPerso, int x_pixel, int y_pixel)
 fonction qui dit si une case distante est accessible a un personnage au vu de ses points de deplacements et du terrain More...
 
char * obtenirNomJoueurCourant ()
 La fonction renvoie le nom du Joueur dont c'est le tour. More...
 
char * obtenirNomClassePersonnage (int numero)
 La fonction renvoie le nom de la classe du Personnage en parrametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL. More...
 
int obtenirPVPersonnage (int numero)
 La fonction renvoie le PV du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL. More...
 
int obtenirPVMaxPersonnage (int numero)
 La fonction renvoie le PV max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More...
 
int obtenirManaPersonnage (int numero)
 La fonction renvoie le mana du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More...
 
int obtenirManaMaxPersonnage (int numero)
 La fonction renvoie le mana max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6. More...
 
int obtenirPDPersonnage (int numero)
 La fonction renvoie le PD du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6. More...
 
int obtenirPDMaxPersonnage (int numero)
 La fonction renvoie le PD max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More...
 
char ** obtenirNomsAttaquesPersonnage (int numero)
 Fonction renvoyant un tableau de chaine de caractères contenant les noms des attaques d'un personnage. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel elles sont définies dans le fichier XML. More...
 
int * obtenirManaAttaquesPersonnage (int numero)
 Fonction renvoyant un tableau d'entiers contenant le prix en mana des attaques du personnage seletionné. More...
 
void debutDuTour ()
 La fonction effectue les opération de début de tour. Les points de déplacements des personnages sont remis au maximum Les Personnages récupèrent une partie de leur mana. Note : Pour l'instant, les personnages récupère 10% de leur mana total au début du tour. (Ils ne peuvent pas avoir un mana supérieur à leur mana maximum définit par la classe.) Si vous voulez changer ça, dites moi.
 
int finDuTour ()
 La fonction teste si un Joueur est victorieux et sinon termine le tour du Joueur actuel. More...
 
char * joueurVictorieux ()
 La fonction retourne le nom du Joueur qui a remporté la partie. Cette fonction doit être appellée seulement si la fonction finDuTour a renvoyé 1. Sinon la fonction renvoie seulement le nom du joueur dont c'est le tour. More...
 
int retirerPersonnage (int numero)
 La fonction retire un personnage de l'équipe d'un joueur si le personnage est KO. More...
 
int retirerJoueur ()
 La fonction retire un joueur de la partie s'il n'a plus de personnages valides. More...
 
int APorteeAttaque (int numDepart, int numCible, char *nomAttaque)
 La fonction teste si l'attaque en parametre à une portée suffisante pour entre lancée du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL) Cette fonction doit permettre d'afficher les personnages à portée de l'attaque. More...
 
int lancerAttaque (int numDepart, int numCible, char *nomAttaque)
 
void annulerEffets (int numPerso)
 La fonction annule tous les effets actifs sur un personnage. A appeler avant de retirer un personnage KO de la partie. More...
 

Detailed Description

Fichier contenant la definition des fonctions du controleur.

Function Documentation

int ajouterPersonnage ( char *  nomClasse,
int  numTab,
int  numJoueur 
)

La fonction ajoute un personnage au tableau de personnages d'un Joueur à l'indice numTab(compris entre 0 et TAILLE_MAX_GROUPE). S'il y a déjà un personnage à l'indice numTab, l'ancien personnage est effacé du tableau.

Parameters
lenom de la classe dont dépend le Personnage, numTab un entier représentant l'indice auquel ajouter le Personnage dans le table de personnages, numJoueur est un entier représentant le premier ou le second Joueur de la Partie.
Returns
L'indice de la classe du personnage si le Personnage a été correctement ajouté, -1 sinon.
void ajouterUnJoueur ( char *  nomDuJoueur,
EtatsJeu etat 
)

Fonction ajoutant un Joueur à la Partie et faisant passer la partie à l'état suivant. Si le joueur n'a pas correctement été ajouté, l'état reste le même.

Parameters
Lenom du joueur à ajouter à la partie
void annulerEffets ( int  numero)

La fonction annule tous les effets actifs sur un personnage. A appeler avant de retirer un personnage KO de la partie.

Parameters
unentier vers le numero du personnage definit dans la SDL
int APorteeAttaque ( int  numDepart,
int  numCible,
char *  nomAttaque 
)

La fonction teste si l'attaque en parametre à une portée suffisante pour entre lancée du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL) Cette fonction doit permettre d'afficher les personnages à portée de l'attaque.

Parameters
desentiers vers les personnages départs et cible (définit par la SDL), une chaine de char vers le nom de l'attaque à lancer.
Returns
1 si l'attaque a une portée suffisante, 0 sinon.
boolean case_accessible ( int  numPerso,
int  x_pixel,
int  y_pixel 
)

fonction qui dit si une case distante est accessible a un personnage au vu de ses points de deplacements et du terrain

Parameters
Lenumero du personnage a deplacer, les coordonnees ou l'utilisateur a clique
Returns
vrai ou faux
void deplacement_personnage ( int  numPerso,
int  x_pixel,
int  y_pixel 
)

La fonction permet de deplacer un personnage.

Parameters
Lenumero du personnage a deplacer, les coordonnees ou l'utilisateur a clique
int finDuTour ( )

La fonction teste si un Joueur est victorieux et sinon termine le tour du Joueur actuel.

Returns
1 si un joueur a remporté la partie, 0 sinon, dans ce cas, la main est donnée au joueur suivant.
void freeCartes ( char **  tab)

La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur la carte.

Parameters
letableau de charactères à supprimmer.
void freeClasses ( char **  tab)

La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur les classes.

Parameters
L'adressedu table de caractères à libérer.
char* joueurVictorieux ( )

La fonction retourne le nom du Joueur qui a remporté la partie. Cette fonction doit être appellée seulement si la fonction finDuTour a renvoyé 1. Sinon la fonction renvoie seulement le nom du joueur dont c'est le tour.

Returns
Une chaine de caractère vers le nom d'un Joueur.
int nbCartes ( )

Fonction renvoyer le nombre de cartes contenues dans le package du jeu.

Returns
le nombre de cartes contenues dans le package du jeu
int nbClasses ( )

Fonction renvoyer le nombre de classes contenues dans le package du jeu.

Returns
le nombre de classes contenues dans le package du jeu
char** obtenirDescriptionCarte ( )

Fonction renvoyant un tableau de chaine de caractères contenant les descriptions des Cartes. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.

Returns
un tableau de chaine de charactères (char**).
int* obtenirManaAttaquesPersonnage ( int  numero)

Fonction renvoyant un tableau d'entiers contenant le prix en mana des attaques du personnage seletionné.

Parameters
unentier correspondant au numero du personnage devant lancer l'attaque
Returns
un tableau d'entiers.
unsigned short int* obtenirManaClasses ( )

Fonction renvoyant un tableau d'entiers correspondant au mana de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.

Returns
un tableau d'entiers
int obtenirManaMaxPersonnage ( int  numero)

La fonction renvoie le mana max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le mana max de la classe du Personnage.
int obtenirManaPersonnage ( int  numero)

La fonction renvoie le mana du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le mana du Personnage.
unsigned short int* obtenirMvtClasses ( )

Fonction renvoyant un tableau d'entiers correspondant aux points de mouvement de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.

Returns
un tableau d'entiers
char* obtenirNomClassePersonnage ( int  numero)

La fonction renvoie le nom de la classe du Personnage en parrametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un char * vers le nom de la classe du Personnage.
char* obtenirNomJoueurCourant ( )

La fonction renvoie le nom du Joueur dont c'est le tour.

Returns
Un char * vers le nom du joueur dont c'est le tour.
char** obtenirNomsAttaquesPersonnage ( int  numero)

Fonction renvoyant un tableau de chaine de caractères contenant les noms des attaques d'un personnage. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel elles sont définies dans le fichier XML.

Parameters
unentier correspondant au numero du personnage devant lancer l'attaque
Returns
un tableau de chaine de charactères (char**).
char** obtenirNomsCartes ( )

Fonction renvoyant un tableau de chaine de caractères contenant les noms des Cartes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.

Returns
un tableau de chaine de charactères (char**).
char** obtenirNomsClasses ( )

Fonction renvoyant un tableau de chaine de caractères contenant les noms des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.

Returns
un tableau de chaine de charactères (char**).
int obtenirPDMaxPersonnage ( int  numero)

La fonction renvoie le PD max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le PD max de la classe du Personnage.
int obtenirPDPersonnage ( int  numero)

La fonction renvoie le PD du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le PD du Personnage.
void obtenirPositionPersonnage ( int  numero,
int *  x,
int *  y 
)

La fonction modifie les parrametres x et y en entrée en fonction des coordonnées du Personnage dont le numero en parrametre est celui définit dans la sdl.

Parameters
Lenumero du personnage definit dans la sdl, des pointeurs vers des int x et y pour récupérer les coordonnées.
unsigned short int* obtenirPVClasses ( )

Fonction renvoyant un tableau d'entiers correspondant aux PV de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.

Returns
un tableau d'entiers
int obtenirPVMaxPersonnage ( int  numero)

La fonction renvoie le PV max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le PV max de la classe du Personnage.
int obtenirPVPersonnage ( int  numero)

La fonction renvoie le PV du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.

Parameters
Lenumero du personnage pour la SDL.
Returns
Un int vers le PV du Personnage.
char* obtenirRessourcePersonnage ( int  x,
int  y 
)

La fonction renvoie la ressource d'un Personnage présent aux coordonnées.

Parameters
Lescoordonnées de la Case à tester
Returns
la ressource du personnage sur la case, NULL s'il n'y a pas de personnage sur la case ou si le Personnage n'est pas trouvé.
char* obtenirRessourcePersonnageNum ( int  numero)

La fonction renvoie la ressource d'un Personnage dont le numero est celui définit dans la sdl.

Parameters
Lenumero du personnage definit dans la sdl.
Returns
la ressource du personnage, NULL si le personnage n'est pas trouvé.
char* ObtenirRessourceTerrain ( int  x,
int  y 
)

La fonction teste le type d'un Terrain aux coordonnées données et renvoie la ressource à afficher. L'utilisation de cette fonction pourrait se faire dans une boucle dans la SDL pour afficher la carte Case par Case. Il est d'abbord nécessaire de convertir les coordonnées "pixels" en coordonnées de cases de jeu. La carte doit être initialisées avant l'appel à cette fonction.

Parameters
Lescoordonnées de la Case à tester
Returns
un char * vers la ressource du Terrain de la case.
char** obtenirSkinsClasses ( )

Fonction renvoyant un tableau de chaine de caractères contenant le chemin vers les Skins des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. Ici le chemin du Skin renvoyé est celui du "default".

Returns
un tableau de chaine de charactères (char**).
int personnagePresent ( int  x,
int  y 
)

La fonction teste si un Personnage est présent aux coordonnées à tester. Les coordonnées doivent être convertir des "pixels" de la SDL en Cases de Jeu.

Parameters
Lescoordonnées de la Case à tester
Returns
1 si un Personnage est présent aux coordonnées, 0 sinon.
int retirerJoueur ( )

La fonction retire un joueur de la partie s'il n'a plus de personnages valides.

Returns
1 si un joueur est retiré, 0 sinon.
int retirerPersonnage ( int  numero)

La fonction retire un personnage de l'équipe d'un joueur si le personnage est KO.

Parameters
lenumero du joueur définit dans la sdl.
Returns
1 si le personnage est KO et qu'il a été retiré, 0 sinon.
int selectionnerCarte ( char *  nomCarte)

La fonction ajoute la Carte dont le nom est en parrametre à la Partie. Les Terrains de la Carte sont initialisé à partir des cartes décrites en XML.

Parameters
Lenom de la Carte décrite en XML.
Returns
1 si la carte est correctement initialisée, 0 sinon.
Case* trouverCase ( Carte_Jeu c,
int  x,
int  y 
)

La fonction retourne un pointeur vers la case de coordonnées x,y.

Parameters
lescoordonnées x et y d'une case (pas en pixels mais bien en colonne et ligne), ainsi que la carte utilisée
Returns
un pointeur vers cette case
Personnage* trouverPersonnage ( Case c)

La fonction renvoie un pointeur vers le personnage présent sur la case en parametre.

Parameters
Lescoordonnées de la Case à tester
Returns
Un pointeur vers un personnage, NULL, s'il n'y a pas de personnage sur la case.
int x_case_cliquee ( int  x_pixel,
int  y_pixel 
)

La fonction retourne la colonne d'une case à partir de sa position en pixels.

Parameters
lescoordonnées x et y de la case en pixels
Returns
la colonne de la case
int y_case_cliquee ( int  x_pixel,
int  y_pixel 
)

La fonction retourne la ligne d'une case à partir de sa position en pixels.

Parameters
lescoordonnées x et y de la case en pixels
Returns
la ligne de la case