Toegarf | Tout d'abord les structures :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /* Plateau */
- struct plateau_s {
- char** bille; //pointeur sur le plateau de jeu
- int plateau_taille; //taille du plateau
- };
- /* ColorKiller */
- struct colorkiller_s {
- struct liste_s** bille; //pointeur sur les billes en jeu
- struct plateau_s* plateau; //pointeur sur le plateau de jeu
- int** score; //pointeur sur le tablmeau des scores
- /* Parametres de jeu : */
- int nombre_ajoute; //nombre de billes ajoutee a chaque tour
- int nombre_couleur; //nombre de couleurs
- int nombre_deplacement; //nombre de deplacements autorises
- int nombre_groupe; //nombre de billes qu'un groupe devra comprendre pour etre supprime
- /* Statut de la partie : */
- char* tour_couleur; //couleur dont c'est le tour de jouer
- int tour_nombre; //nombre de tours depuis le debut de la partie
- int tour_joueur; //numeros du joueur en cours
- };
- /* Coordonnees */
- struct coordonnees_s {
- int* x;
- int* y;
- };
|
Voila le code de la fonction qui merdouille :
Code :
- struct coordonnees_s bille_selection_nom (struct colorkiller_s* colorkiller) {
- struct coordonnees_s tmp_coordonnees;
- struct liste_s* bille;
- char tmp_nom[20];
- char* tmp_couleur;
- printf("bille : selection : nom = " );
- fgets (tmp_nom, sizeof (tmp_nom), stdin);
- bille = liste_recherche_element_nom (colorkiller->bille, tmp_nom);
- printf("%d\n",&(bille->position_x));
- printf("%d\n",&(bille->position_y));
- tmp_coordonnees.x = &(bille->position_x);
- tmp_coordonnees.y = &(bille->position_y);
- printf("%d\n",tmp_coordonnees.x);
- printf("%d\n",tmp_coordonnees.y);
- tmp_couleur = case_etat (colorkiller, tmp_coordonnees);
- if (tmp_couleur == NULL) tmp_couleur = "rien";
- if (strcmp (tmp_couleur, colorkiller->tour_couleur) != 0) printf ("bille : selection : cette bille ne vous appartient pas\n" );
- while (strcmp (tmp_couleur, colorkiller->tour_couleur) != 0) {
- printf("bille : selection : nom = " );
- fgets (tmp_nom, sizeof (tmp_nom), stdin);
- bille = liste_recherche_element_nom (colorkiller->bille, tmp_nom);
- tmp_coordonnees.x = &(bille->position_x);
- tmp_coordonnees.y = &(bille->position_y);
- tmp_couleur = case_etat (colorkiller, tmp_coordonnees);
- if (tmp_couleur == NULL) tmp_couleur = "rien";
- if (strcmp (tmp_couleur, colorkiller->tour_couleur) != 0) printf ("bille : selection : cette bille ne vous appartient pas\n" );
- }
- printf("bille : selection : OK\n" );
- return tmp_coordonnees;
- }
|
Ma fonction liste recherche element nom :
Code :
- struct liste_s* liste_recherche_element_nom (struct liste_s** liste, char* nom) {
- if ((*liste)->nom == NULL && (*liste)->couleur == NULL && (*liste)->position_x == NULL && (*liste)->position_y == NULL) return NULL;
- if (strcmp((*liste)->nom, nom) == 0)
- return *liste;
- else
- return liste_recherche_element_nom (&(*liste)->suivant, nom);
- }
|
Ma fonction case etat :
Code :
- char* case_etat (struct colorkiller_s* colorkiller, struct coordonnees_s coordonnees) {
- struct liste_s* bille;
- if (liste_recherche_element (colorkiller->bille, coordonnees.x, coordonnees.y) != NULL) {
- bille = liste_recherche_element (colorkiller->bille, coordonnees.x, coordonnees.y);
- printf("[%d][%d] : %s\n",coordonnees.x,coordonnees.y,bille->couleur);
- return bille->couleur;
- }
- printf("[%d][%d] : vide\n",coordonnees.x,coordonnees.y);
- return NULL;
- }
|
Pour finir la sortie terminal :
Code :
- nom : Rémi
- couleur : Orange
- X = 2
- Y = 0
- ñ
- nom : Alexandre
- couleur : Rouge
- X = 2
- Y = 2
- ñ
- [2][0] : Orange
- bille : selection : nom = Rémi
- 8
- 12
- 8
- 12
- [8][12] : vide
- bille : selection : cette bille ne vous appartient pas
- bille : selection : nom = Rémi
- [8][12] : vide
- bille : selection : cette bille ne vous appartient pas
- bille : selection : nom = Alexandre
- [8][12] : vide
- bille : selection : cette bille ne vous appartient pas
- bille : selection : nom = rien
- [8][12] : vide
- bille : selection : cette bille ne vous appartient pas
- bille : selection : nom =
|
Le probleme c'est que les coordonnees des elements restent constantes...
Je ne vois pas comment m'en sortir... |