Télécharger la présentation
Publié parGéraldine Bureau Modifié depuis plus de 9 années
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 . .
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.