Probleme programme C bowling

thib02140 -  
 Etibou -
Bonjour, voilà j'ai un programme ou je dois:
Ecrire une fonction d’initialisation d’un joueur (saisie du nom et allocation),
Ecrire une fonction de calcul du score après la fin du frame.
Ecrire une fonction d’affichage du score
Ecrire une fonction d’initialisation d’une partie
Ecrire une fonction de déroulement d’une partie
Ecrire une fonction d’affichage de tous les joueurs
Ecrire une fonction qui effectue le classement des joueurs.

Mon probleme se situe lors de l'affichage du score lorsque je rentre les points des différents lancers, les points qui sont affiché sont différents de ce rentré, je n'arrive pas à trouver mon erreur, ensuite je n'arrive pas à ce que les lancers soient demandé à tous les joueurs. Pouvez vous m'aider svp? Merci
Voilà mon code.




#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

typedef struct
{
int lancer1 ;
int lancer2 ;
int lancer3 ;
} frame ;

typedef struct {
char * nom_joueur ;
int score ;
frame * jeu ;
} joueur ;

typedef struct {
int nb_joueurs ;
joueur * joueurs ;
} partie ;

int i=0;


joueur initialisation_joueur()
{
joueur player;
player.nom_joueur=(char*)malloc(20*sizeof(char));
player.jeu=(frame*)malloc(10*sizeof(frame));
printf ("entrez le nom du joueur!\n");
scanf ("%s",player.nom_joueur);
player.jeu[1].lancer1=0;
player.jeu[2].lancer2=0;
player.jeu[3].lancer3=0;
player.score=0;
return player;

}


joueur calcul_frame(joueur j, int i)
{
i=1;
j.score=0;
j.score=j.score+j.jeu[i].lancer1+j.jeu[i].lancer2+j.jeu[i].lancer3;
{
printf(" Quel est votre 1er lancer\n");
scanf("%i",&(j.jeu[i].lancer1));
if(j.jeu[i].lancer1==10)
{
j.jeu[i].lancer2=0;
j.score=j.score+j.jeu[i].lancer1+j.jeu[i].lancer2;
}
else{ printf("votre lancer 2\n");
scanf(" %i",&(j.jeu[i].lancer2));}
if(j.jeu[i-1].lancer1+j.jeu[i-1].lancer2==10)
j.score=j.score+j.jeu[i].lancer1;
if(i>1)
{
if (j.jeu[i-1].lancer1==10+j.jeu[i-2].lancer1==10)
j.score=j.score+j.jeu[i].lancer1;
}
}
}




joueur affichage_joueur(joueur j, int i)
{
i=0;
j.score;
printf("---------------------------------------------------------------------------\n");
printf("|%s",j.nom_joueur);
for(i=0;i<10;i++)
printf("| %i ",i+1);
printf("\n");
printf("---------------------------------------------------------------------------\n");
printf("| %i ", j.score);
for(i=0;i<10;i++)
printf("| %i %i ", j.jeu[i].lancer1,j.jeu[i].lancer2);
for(i=0;i<10;i++)
printf(" ");
printf("\n");

}


partie initialisation_partie(partie p)
{
int i=1;
printf ("Combien de joueurs dans la partie?\n");
scanf ("%i", &p.nb_joueurs);
printf ("il y a %i joueur(s) en piste\n",p.nb_joueurs);
while (i<p.nb_joueurs)
{
initialisation_joueur();
i++;
}

return p;
}



int main ()
{
int i=0;
partie p;
p.nb_joueurs=0;
joueur gamer;
initialisation_partie(p);
gamer=initialisation_joueur();
printf ("\n""%s",gamer);
for(i=0; i<10; i++)
{
calcul_frame(gamer,i);
affichage_joueur(gamer,i);
}
return 0;
}
A voir également:

1 réponse

Etibou
 
Salut, je voudrais savoir si tu es parvenu a finaliser ton jeu de bowling avec ta programmation en C, si oui, peux tu la mettre en ligne? ++
-1