#include <stdio.h> #include <stdlib.h> #include <time.h> #include "initialisation.h" int numJoueur; // TODO bug if input a string /** * \fn int inputYN() * \brief fonction de test qui verifie si Y a �t� entr� * * * \return 1 si Y et 0 sinon */ int inputYN() { char tmp; scanf("%c", &tmp); getchar(); return (tmp == 'y' || tmp == 'Y'); } /** * \fn void presenceJoueur(Joueur* current) * \brief fonction qui demandent si le bon joueur et devant l'ecran * * \param Joueur* current le joueur courrent * */ void presenceJoueur(Joueur* current) { while (1) { printf("\nVeuillez le joueur \"%s\" presenter devant l'ecran!\n", current->nom); printf("Vous etes le joueur \"%s\"? Y/N ", current->nom); if (inputYN()) system("clear"); break; } } /** * \fn void MultiSuivant(int i) * \brief demande au joueur si il est pret a continuer dans different cas * * \param int i si i= 1 joueur suivant i=2 manche suivante i=3 partie suivante * */ void MultiSuivant(int i) { while (1) { if(i==1) { printf("entrer pour passer au joueur suivant "); getchar(); break; } if(i==2) { printf("\nPasser au manche suivant? Y/N "); if (inputYN())break; } if(i==3) { printf("Passer a la partie suivante? Y/N "); if (inputYN())break; } } return; } /** * \fn void inputPlayersNum() * \brief permet de rentre le nombre de joueur * * * */ void inputPlayersNum() { printf("Veuillez saisir le nombre de joueurs: "); scanf("%d", &numJoueur); while (numJoueur > MAX_JOUEURS || numJoueur <= 1) { printf("Le nombre de joueurs n'est pas valide!"); printf("recommencez: "); scanf("%d", &numJoueur); getchar(); } getchar(); } /** * \fn Joueur* saisirJoueur() * \brief permet de rentrer le nom des joueur et leur ordre * * \return Joueur le joueur saisie */ Joueur* saisirJoueur() { printf("\n choisissez un nom de joueur.\n"); printf("Appuyer sur Enter pour finir la saisie.\n"); Joueur *p,*head; int i; for (i = 1; i < numJoueur + 1; i++) { if (i == 1) { p = (Joueur*) malloc(sizeof(Joueur)); p->nombreDes=5;// on peut le modifier pour faciliser le test head = p; } else { p->next = (Joueur*) malloc(sizeof(Joueur)); p = p->next; p->nombreDes=5; } printf("\n joueur %d: ", i); fgets(p->nom, 20, stdin); p->nom[strlen(p->nom) - 1] = 0; } p->next = head; system("clear"); return head; } /** * \fn int randInt(int max) * \brief permet de retourner un entier entre 1 et max * * \return int entier al�atoire entre 1 et max */ int randInt(int max) { return (rand() % max + 1); } /** * \fn Joueur* getPremierJoueur(Joueur* head) * \brief donne le premier joueur * \param Joueur* head le debut de la liste de joueur * \return Joueur le premier joueur */ Joueur* getPremierJoueur(Joueur* head) { int num = randInt(numJoueur) - 1; printf("\nOn a choisi par harsard le numero %d comme le permier joueur\n", num + 1); return getJoueur(head, num); } /** * \fn Joueur* getJoueur(Joueur* head, int num) * \brief donne un premier joueur * \param Joueur* head le debut de la liste de joueur, int num le numero du joueur souhait� * \return Joueur le joueur souhait� */ Joueur* getJoueur(Joueur* head, int num) { Joueur *tmp = head; int i; for (i = 0; i < num; i++) tmp = tmp->next; return tmp; } /** * \fn void distribuerDes(Joueur* p) * \brief fais le tirage des des du jouer * \param Joueur* p le joueur dont ont tire les des * */ void distribuerDes(Joueur* p) { int i; int j; for (i = 0; i < numJoueur; i++) { for (j = 0; j < 5; j++) { p->des[j] = randInt(6); } printf("\n"); p = p->next; system("clear"); } printf("Tous les des sont distribues aux joueurs.\n"); }