La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE

Présentations similaires


Présentation au sujet: "Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE"— Transcription de la présentation:

1 Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE
OTHELLO PROJET INFO 2005 Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE

2 SOMMAIRE I - Partie de Ferhat II - Partie de Cédric
III - Partie d’Eric IV - Partie de Gregory

3 Ferhat NOUIS 1) Affichage du tableau void tableau(T_TAB tab)
tab[ i ] [ j ]

4 Ferhat NOUIS 2) Le main On initialise le tableau :
tab[ i ] [ j ] = ‘ ’ sauf les 4 du milieu Puis appel de la fonction choix_du_jeu ( &choix, name, name2) ;

5 Ferhat NOUIS 3) choix_du_jeu ( &choix, name, name2)
 c’est l’interface, le menu du jeu. Methode de blindage des saisies: printf("Qui commence? %s ( taper 1 ) ou %s? ( taper 2 ) \n",name3,name4); scanf("%s",saisie); while ((cc = getchar()) != '\n' && cc != EOF); } while ( ((saisie[0] !=49) && (saisie[0] !=50))||(saisie[1]!='\0')); &choix est un int qui est rendu ensuite au main.

6 Ferhat NOUIS Retour au main:
La valeur de arret permet de savoir si on calcule le score ou pas Puis on propose a l’utilisateur de rejouer

7 Ferhat NOUIS 4) score.c void calcul_score (T_TAB tab,int choix,char name[15], char name2[15]) Scanne le tableau et calcule le score de Noir et celui de Blanc. Enregistre le resultat dans un fichier « sauvegarde_score.txt » En fonction du score et du choix il ecrit: "%s a battu %s par %d a %d\n", name2,name,b,n) "L'ordinateur a battu %s par %d a %d\n",name,n,b)

8 Ferhat NOUIS void score_noir (T_TAB tab) void score_blanc (T_TAB tab)
void Noir_joue ( T_TAB tab, int *noir )  permet de savoir si noir peut jouer. *noir prennent la valeur 0 si noir peut jouer. Sinon *noir =1. void Blanc_joue( T_TAB tab, int *blanc )  meme chose

9 Cédric TANGUY gestion de la partie joueur contre joueur
validation d’un coup et inversion

10 Cédric TANGUY 1) Fonction verifie

11 Cédric TANGUY int verifie1_ direction(int i,int j,char couleur1,char couleur2, T_TAB tab) Chaque fonction verifie1_direction ne prend que 2 valeurs: 0 ou 1: 0 si le joueur ne peut pas prendre de pions adverse dans la «direction indiqué » 1 si le joueur peut prendre de pions adverse dans la «direction indiqué » La fonction verifie prend 1 si au moins une des 8 fonctions prend 1: on dit alors que le coup est valide

12 Cédric TANGUY verifie1_dte( 5,6,’*’,’o’,tab)=1
verifie1_haut(2,2,’o’,’*’,tab)=1 verifie1_bas(7,1,’o’,’*’,tab)=1

13 Cédric TANGUY verifie1 appelle verifie2 si : 1) la case est vide
2) la case adjacente est de couleur opposée  sinon verifie1 renvoie 0 3 choix possibles pour verifie2: la case est vide ou inoccupée: verifie2=0 la case est de meme couleur : verifie2=1 3) La case est de couleur opposée: verifie2 se reappelle recursivement j i verifie1_haut(1,3,’*’,’o’,tab)? verifie1_haut(0,7,’*’,’o’,tab)?

14 Cédric TANGUY 2) gestion du mode joueur contre joueur
void joueurvsjoueur ( T_TAB tab , int *arret, char name[15], char name2[15] )

15 Cédric TANGUY Principe général de la fonction: Sauvegarde. REPETER
Si noir peut jouer: Etude de la combinaison Inversion sauvegarde Si blanc peut jouer: inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer

16 Cédric TANGUY Principe général de la fonction: Sauvegarde. REPETER
Si noir peut jouer:  etablit par la fonction Noir_joue de ferhat Etude de la combinaison Inversion sauvegarde Si blanc peut jouer:  etablit par la fonction Blanc_joue de ferhat inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer  Si (*noir ET *blanc =1 ) OU *arret =1

17 Cédric TANGUY Principe général de la fonction: Sauvegarde. REPETER
Si noir peut jouer: l’utilisateur tape une commande normale Etude de la combinaison Inversion l’utilisateur tape une combinaison speciale sauvegarde Si blanc peut jouer: inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer

18 Cédric TANGUY Si « r1 »  lire_regle() Si « a1 » lire_aide()
void choix_speciaux ( char lettre, int chiffre, char entree, FILE *sauver, int * charge, T_TAB tab, int *arret) Si « r1 »  lire_regle() Si « a1 » lire_aide() Si « q1 »  *arret=1 Si « s1 »  sauvegarder(tab,sauver) Si « c1 »  charger(tab,sauver,&charge) Si « c2 »  annuler_coup(tab,sauver,&charge)

19 Cédric TANGUY Principe général de la fonction: Sauvegarde. REPETER
Si noir peut jouer: Etude de la combinaison charge=0 Inversion sauvegarde Si blanc peut jouer: inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer

20 Cédric TANGUY Principe général de la fonction: Sauvegarde.
REPETER charge=1 Si noir peut jouer: Etude de la combinaison Inversion sauvegarde Si blanc peut jouer: inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer

21 Cédric TANGUY Principe général de la fonction: Sauvegarde. REPETER
Si noir peut jouer: Etude de la combinaison charge=2 Inversion sauvegarde Si blanc peut jouer: inversion JUSQU A CE QUE Noir et blanc ne peuvent plus jouer

22 Eric ABRIAL Charge_binaire Enregistrement - Chargement.c lire_regles
lire_aide charger annuler_coup sauvcpc sauvegarder sauv_binaire sauv_texte Charge_binaire Copiefichier

23 Eric ABRIAL 1) sauvegarde FILE *sauver; sauver = fopen( "temp", "a");

24 Eric ABRIAL 1) sauvegarde sauver temp 1

25 Eric ABRIAL 1) sauvegarde sauver temp 1 2

26 Eric ABRIAL 1) sauvegarde sauver temp 1 2 3

27 Eric ABRIAL 1) sauvegarde sauver temp 1 2 3 . . . N

28 Eric ABRIAL 1) sauvegarde fDest sauver Nom de la sauvegarde temp 1 1 2
copiefichier 3 3 . . . . . . N N

29 Eric ABRIAL 2) chargement charge2 sauver Nom de la sauvegarde temp 1
1’ 2 2’ 3 3’ . . . . . . N N’

30 Eric ABRIAL 2) chargement Visualiser les coups précédents charge2
Nom de la sauvegarde N’ = ftell(charge2)/(64) for ( i=0;i<N’;i++) { fread( tab, sizeof(T_TAB),1, charge2);} tableau(tab); fseek(charge2, 0, SEEK_SET); 1’ 2’ 3’ . . . N’

31 Eric ABRIAL Ne rien faire: for ( i=0;i<N’;i++) {
fread( tab, sizeof(T_TAB),1, charge2); fwrite( tab, sizeof(T_TAB),1, sauver); } *charge=1 charge2 sauver Nom de la sauvegarde temp 1’ 1’ 2’ 2’ 3’ 3’ . . . . N’ N’

32 Eric ABRIAL Un coup en arrière: for ( i=0;i<(N’-1);i++) {
fread( tab, sizeof(T_TAB),1, charge2); fwrite( tab, sizeof(T_TAB),1, sauver); } *charge=2 charge2 sauver Nom de la sauvegarde temp 1’ 1’ 2’ 2’ 3’ 3’ . . N’-1 N’-1 N’

33 Eric ABRIAL 2 coups en arrière: for ( i=0;i<(N’-2);i++) {
fread( tab, sizeof(T_TAB),1, charge2); fwrite( tab, sizeof(T_TAB),1, sauver); } *charge=1 charge2 sauver Nom de la sauvegarde temp 1’ 1’ 2’ 2’ 3’ 3’ . . N’-2 N’-2 N’-1 N’

34 Eric ABRIAL 3) annuler_coup sauver2 sauver temp temp2 1 1 2 2 copie 3
. . . . . . N N-1

35 Eric ABRIAL 3) annuler_coup sauver2 sauver temp temp2 1 1 2 2 copie 3
. . . . . . N-1 N-1

36 Eric ABRIAL 3) annuler_coup sauver2 sauver temp temp2 1 1 2 2 3 3 . .


Télécharger ppt "Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE"

Présentations similaires


Annonces Google