Move vider_buffer out to module, so that it can be used by jouer_coup
This commit is contained in:
parent
1914a28e62
commit
596db3a498
5 changed files with 49 additions and 22 deletions
4
Makefile
4
Makefile
|
@ -1,7 +1,7 @@
|
|||
all: jeu
|
||||
|
||||
jeu: main.c affichage.c affichage.h partie.c partie.h
|
||||
cc main.c affichage.c affichage.h partie.c partie.h -o jeu
|
||||
jeu: main.c affichage.c affichage.h misc.c misc.h partie.c partie.h
|
||||
cc main.c affichage.c affichage.h misc.c misc.h partie.c partie.h -o jeu
|
||||
|
||||
clean:
|
||||
rm -f jeu
|
||||
|
|
20
main.c
20
main.c
|
@ -27,30 +27,12 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "affichage.h"
|
||||
#include "misc.h"
|
||||
#include "partie.h"
|
||||
|
||||
|
||||
void vider_buffer() {
|
||||
int c = 0;
|
||||
while((c = getchar()) != '\n' && c != EOF);
|
||||
}
|
||||
|
||||
void nommer_joueur(char *joueur) {
|
||||
char *linefeed_position = NULL;
|
||||
|
||||
fgets(joueur, 10, stdin);
|
||||
|
||||
linefeed_position = strchr(joueur, '\n');
|
||||
if (linefeed_position != NULL) {
|
||||
*linefeed_position = '\0';
|
||||
} else {
|
||||
vider_buffer();
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int choix = 0;
|
||||
char joueur1[10];
|
||||
|
|
26
misc.c
Normal file
26
misc.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* misc.c */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "misc.h"
|
||||
|
||||
|
||||
void nommer_joueur(char *joueur) {
|
||||
char *linefeed_position = NULL;
|
||||
|
||||
fgets(joueur, 10, stdin);
|
||||
|
||||
linefeed_position = strchr(joueur, '\n');
|
||||
if (linefeed_position != NULL) {
|
||||
*linefeed_position = '\0';
|
||||
} else {
|
||||
vider_buffer();
|
||||
}
|
||||
}
|
||||
|
||||
void vider_buffer() {
|
||||
int c = 0;
|
||||
while((c = getchar()) != '\n' && c != EOF);
|
||||
}
|
9
misc.h
Normal file
9
misc.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* misc.h */
|
||||
|
||||
#ifndef DEF_MISC
|
||||
#define DEF_MISC
|
||||
|
||||
void nommer_joueur(char*); // lit une string pour l'affecter à un joueur
|
||||
void vider_buffer(); // s'assure qu'il n'y a plus rien dans stdin
|
||||
|
||||
#endif
|
12
partie.c
12
partie.c
|
@ -5,6 +5,7 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
#include "affichage.h"
|
||||
#include "misc.h"
|
||||
#include "partie.h"
|
||||
|
||||
int NB_ALLUMETTES = 30;
|
||||
|
@ -40,8 +41,17 @@ int partie_en_cours() {
|
|||
|
||||
int jouer_coup() {
|
||||
int allumettes_a_retirer;
|
||||
|
||||
printf("Combien d'allumettes souhaitez-vous retirer ? [1-3] : ");
|
||||
scanf("%d", &allumettes_a_retirer);
|
||||
allumettes_a_retirer = fgetc(stdin);
|
||||
if (allumettes_a_retirer == '\n') {
|
||||
// rien n'a été tapé, créons une erreur "propre" pour sortir avec false
|
||||
allumettes_a_retirer = 0;
|
||||
} else {
|
||||
// conversion vers int depuis la valeur ascii
|
||||
allumettes_a_retirer = allumettes_a_retirer - 48;
|
||||
vider_buffer();
|
||||
}
|
||||
|
||||
if ((allumettes_a_retirer < 1) || (allumettes_a_retirer > 3)) {
|
||||
printf("Coup invalide ! Veuillez recommencer...\n");
|
||||
|
|
Loading…
Reference in a new issue