jeu-des-trente-allumettes/main.c

102 lines
3 KiB
C

/*
* =====================================================================================
*
* Filename: main.c
*
* Description: Jeu des 30 allumettes pour le projet de C à l'Efrei Paris
*
* Version: 1.0
* Created: 11/29/2021 10:14:48
*
* Authors: Adam Belghith, Tunui Franken
* Organization: Efrei
*
* =====================================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "affichage.h"
#include "misc.h"
#include "partie.h"
enum Ordinateur ORDINATEUR;
int main() {
int choix = 0;
int choix_difficulte = 0;
char joueur1[15];
char joueur2[15];
srand(time(NULL)); // pour initialiser la seed, doit être fait qu'une fois, donc ici
// menu, avec choix à retourner dans un case
printf("\t\t**********************\n");
printf("\t\t* Jeu des allumettes *\n");
printf("\t\t**********************\n\n");
printf("Bonjour et bienvenue dans le jeu des allumettes.\n");
while (choix == 0) {
afficher_menu();
choix = fgetc(stdin);
if (choix != '\n') vider_buffer(); // si rien tapé ('\n') on refera un tour de boucle
switch (choix) {
case '1':
ORDINATEUR = HUMAN;
printf("Joueur 1, comment vous appelez-vous ? ");
nommer_joueur(joueur1);
printf("Joueur 2, comment vous appelez-vous ? ");
nommer_joueur(joueur2);
partie(joueur1, joueur2);
choix = 0;
break;
case '2':
do{
afficher_menu_difficulte();
choix_difficulte = fgetc(stdin);
if (choix_difficulte != '\n') vider_buffer(); // si rien tapé ('\n') on refera un tour de boucle
switch (choix_difficulte){
case '1':
ORDINATEUR = EASY;
break;
case '2':
ORDINATEUR = HARD;
break;
default:
ORDINATEUR = UNDEFINED;
printf("Veuillez entrer 1 ou 2.\n");
break;
}
} while ((ORDINATEUR != EASY) && (ORDINATEUR != HARD));
printf("Comment vous appelez-vous ? ");
nommer_joueur(joueur1);
strcpy(joueur2, "Ordinateur");
partie(joueur1, joueur2);
choix = 0;
break;
case '3':
afficher_regles();
choix = 0;
break;
case '4':
afficher_credits();
choix = 0;
break;
case 'q':
return EXIT_SUCCESS;
default:
choix = 0;
break;
}
}
return EXIT_FAILURE;
}