• 0:00
    /
    0:00
    Loaded: 0%
    0:00
    Progress: 0%
    Stream TypeLIVE
    0:00
     
    1x
    Advertisement

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