Skip to content
Snippets Groups Projects
initialisation.c 2.26 KiB
Newer Older
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "initialisation.h"

// TODO bug if input a string
static int inputYN() {
	char tmp;
	scanf("%c", &tmp);
	getchar();
	return (tmp == 'y' || tmp == 'Y');
int inputPlayersNum() {
	int num;
	printf("Veuillez-vous saisir le nombre des joueurs au debut: ");
	scanf("%d", &num);
	while (num > MAX_JOUEURS || (num <= 0)) {
		printf("Le nombre de joueurs n'est pas valide!");
		printf("Veuillez-vous resaisir: ");
		scanf("%d", &num);
	}
	getchar();
	return num;
Joueur* saisirJoueur(int numJoueur) {
	printf("\nVeuillez-vous numeroter selon votre position.\n");
	printf("Appuyer sur Enter pour finir la saisie.\n");
	printf(
			"Remarque: La personne a votre gauche correspond a numero suivant.\n");
	Joueur *p, *q, *head;

	for (int i = 1; i < numJoueur + 1; i++) {
		if (i == 1) {
			p = (Joueur*) malloc(sizeof(Joueur));
			head = p;
		} else {
			p->next = (Joueur*) malloc(sizeof(Joueur));
			p = p->next;
		}
		printf("Le nom du joueur N %d: ", i);
		fgets(p->nom, 20, stdin);
		p->nom[strlen(p->nom) - 1] = 0;
	}
	p->next = head;

	return head;
/**
 * Return an integer number between [1, max]
 */
int randInt(int max) {
	return (rand() % max + 1);
Joueur* getPremierJoueur(Joueur* head, int numJoueur) {
	int num = randInt(numJoueur) - 1;
	printf("On a choisi par harsard le numero %d comme le permier joueur\n",
			num + 1);
	return getJoueur(head, num);
}
Joueur* getJoueur(Joueur* head, int num) {
	Joueur *tmp = head;
	for (int i = 0; i < num; i++)
		tmp = tmp->next;
	return tmp;
}
void distribuerDes(Joueur* p, int numJoueur) {
	char t;
	printf("\nNous commencons a distribuer les des.\n");
	printf("Le premier joueur \"%s\" doit etre devant l'ecran.\n", p->nom);

	for (int i = 0; i < numJoueur; i++) {
		while (1) {
			printf("\nVeuillez le joueur \"%s\" presenter devant l'ecran!\n",
					p->nom);
			printf("Vous etes le joueur \"%s\"? Y/N ", p->nom);
			if (inputYN())
				break;
		}
		printf("\nVotre resultat est: ");
		for (int j = 0; j < 5; j++) {
			p->des[j] = randInt(6);
			printf("%d ", p->des[j]);
		}
		printf("\n");

		while (i < numJoueur - 1) {
			printf("Passer au joueur suivant? Y/N ");
			if (inputYN())
				break;
		}
		p = p->next;
//		system("clear");
	}
	printf("All players' dices are given.\n");
}