Ferhat NOUIS Cédric TANGUY Eric ABRIAL Gregory NAZAIRE

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Rappels C.
1 : Léditeur 2 : Le traitement dimages. 3 : La visionneuse dimage. FRONTPAGE PAINT SHOP PRO ACD SEE.
PROGRAMMATION LOGICIEL PL7 MICRO Consignes
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
Retour au menu principal. Généralités Lenvironnement Laffichage de la fenêtre Déplacement / sélection dans une feuille Classeurs La gestion des classeurs.
Créer un document LES FONCTIONS ENREGISTRER LES FORMATS Retour au menu principal.
le nom du logiciel et le nom du fichier s’appelle la barre des titres
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
CYCLE 6 : FONCTIONS FONCTIONS avec paramètres en Entrée 1- Pourquoi les FONCTIONS peuvent échanger des données en E entre elles ? 2- Comment écrire des.
Cours n°3 Les formulaires
Se Connecter à son KLYTIAnet Les 2 types de commandes KLYTIA Création dune « Hôtesse » Création dun « Client » Création dune « Commande Individuelle »
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Cours de programmation
ALGORITHMES RECURSIFS
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Récursivité.
Algorithmique et Programmation
Correction du reste des exercices
Jeu dOthello Projet dAlgorithmique et Programmation.
Projet d’Algorithmique et Programmation
TRAITEMENT DE STRUCTURES
Les fichiers et les chaînes de caractères
Création d'un diaporama Création d'un diaporama
FICHIERS.
Etude de cas : buffer clavier
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
IFT Structures de données
Projet Java : Echiquier électronique
CHARLET Stéphanie DUSSAUD Daphné 4INFO 27/01/2011
INSCRIPTION AUX ELEMENTS
L'ultime test d'intelligence !
Les Fichiers.
BUT DU JEU Être le premier joueur à remplir sa tablette avec les six carreaux de mosaïque de couleur différente en répondant correctement aux questions.
Structure et Services « STS » Menu Structures : Divisions
Projet Programmation Orientée Objet
La librairie assert.h.
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
Les adresses des fonctions
Argc et argv Utilisation des paramètres de la ligne de commande.
Ferhat nouis Cédric tanguy Eric abrial Gregory nazaire
Menu Structure : Divisions Diffusion Nationale TOULOUSE – Décembre 2008 Structure et Services « STS » Menu Structures : Divisions.
Cours N°17 suite. Cours N°17 suite Cours N°17 - suite Dans cette position, un coup des blancs Reine-prend-tour-échec (comme indiqué) va-t-il aboutir.
Le schéma est conseillé dans la correction du livre. Il n’est pas obligatoire, et il n’y aurait pas de point la dessus dans un exercice de bac, sauf.
Traitement de son Chapitre 2 : Exploitation de logiciels Leçon1:
Méthodes de tri.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Le Taquin Mathieu Bernou Laurent Robin.
L’EXECUTION DES JETS Niveau 3 – séance 2.
Les types composés Les enregistrements.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
6ième Classe (Mercredi, 17 novembre) CSI2572
Le théorème de THALES dans 2 triangles
Éléments de présentation
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
LE LOGICIEL ACCESS Créer une base de données avec Access 2010.
compléter la feuille de contrôle des libéros R6-F DIRECTIVESpour 2015CCA1.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Créer un fichier disque en écriture présentation par Bruno Cabiac (merci à Nghiem Nguyenth pour les copies d ’écran) UV I-50 - J.P. DUPUY IUT Paris V dept.
Le Tableur, MS Excel Cours de Dominique Meganck – ICC - IFC Diaporama proposé par FST et adapté par D. Meganck.
O UTILS DE P ROGRAMMATION P OUR LES M ATHÉMATIQUES Mr. BENDIB. I MAA, LAMIS Laboratory, Université Larbi Tébessi - Tébessa.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Informatique 2A Langage C 4ème séance
الهيئة العامة لحماية المستهلك أساليب الترويج وتأثيراتها على المستهلك خليفة التونكتي - مستشار المنافسة - 1.
Transcription de la présentation:

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

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

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

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) ;

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.

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

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)

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

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

Cédric TANGUY 1) Fonction verifie

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

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

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)?

Cédric TANGUY 2) gestion du mode joueur contre joueur void joueurvsjoueur ( T_TAB tab , int *arret, char name[15], char name2[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

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

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

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)

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

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

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

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

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

Eric ABRIAL 1) sauvegarde sauver temp 1

Eric ABRIAL 1) sauvegarde sauver temp 1 2

Eric ABRIAL 1) sauvegarde sauver temp 1 2 3

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

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

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

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’

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’

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’

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’

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

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

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