void chargerPositionJoueurNiveau(void) { FILE *position; char chemin[TAILLE_MAX]; sprintf(chemin, "Sauvegarde/%s/Niveau/position_joueur.txt", personnage.nom); position = ouvrirFichier(chemin, "r", "fichier \"position_joueur.txt\", fonction \"chargerPositionJoueurNiveau\""); fscanf(position, "%d\n", &personnage.positionJoueur[LIG]); fscanf(position, "%d\n", &personnage.positionJoueur[COL]); fermerFichier(position, "fichier \"position_joueur.txt\", fonction \"chargerPositionJoueurNiveau\""); sprintf(chemin, "Sauvegarde/%s/Niveau/salle_actuelle.txt", personnage.nom); position = ouvrirFichier(chemin, "r", "fichier \"salle_actuelle.txt\", fonction \"chargerPositionJoueurNiveau\""); fscanf(position, "%d\n", &(niveauActuel.salleActuelle)); fermerFichier(position, "fichier \"salle_actuelle.txt\", fonction \"chargerPositionJoueurNiveau\""); }
/* Sauvegarde la position du joueur dans le niveau deja genere */ void sauvegarderPositionJoueurNiveau(void) { FILE *position; char chemin[TAILLE_MAX]; sprintf(chemin, "Sauvegarde/%s/Niveau/position_joueur.txt", personnage.nom); /* On ouvre le fichier contenant la position du joueur */ position = ouvrirFichier(chemin, "w+", "fichier \"position_joueur.txt\", fonction \"sauvegarderPositionJoueurNiveau\""); /* On ecrit la position du joueur */ fprintf(position, "%d\n", personnage.positionJoueur[LIG]); fprintf(position, "%d\n", personnage.positionJoueur[COL]); /* On ferme le fichier contenant la position du joueur */ fermerFichier(position, "fichier \"position_joueur.txt\", fonction \"sauvegarderPositionJoueurNiveau\""); sprintf(chemin, "Sauvegarde/%s/Niveau/salle_actuelle.txt", personnage.nom); /* On ouvre le fichier contenant la salle actuelle ou se trouve le joueur */ position = ouvrirFichier(chemin, "w+", "fichier \"salle_actuelle.txt\", fonction \"sauvegarderPositionJoueurNiveau\""); /* On ecrit l'index de la salle ou se trouve le joueur */ fprintf(position, "%d\n", niveauActuel.salleActuelle); /* On ferme le fichier contenant la salle actuelle ou se trouve le joueur */ fermerFichier(position, "fichier \"salle_actuelle.txt\", fonction \"sauvegarderPositionJoueurNiveau\""); }
/* Sauvegarde les infos de la salle indexSalle (nbCoffre, nbEnnemi, caracteristique ennemi etc.) */ void sauvegarderInfoSalleIndiviuelleNiveau(const unsigned int indexSalle) { FILE *infoSalle, *infoEnnemi; char chemin[TAILLE_MAX]; compteur indexEnnemi; sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/info_salle.txt", personnage.nom, indexSalle + 1); /* On ouvre le fichier contenant les infos de la salle */ infoSalle = ouvrirFichier(chemin, "w+", "fichier \"info_salle.txt\", fonction \"sauvegarderInfoSalleIndiviuelleNiveau\""); /* On ecrit les infos de la salle */ fprintf(infoSalle, "%d\n", niveauActuel.salle[indexSalle].nbCoffre); fprintf(infoSalle, "%d\n", niveauActuel.salle[indexSalle].nbEnnemi); /* On ferme le fichier contenant les infos de la salle */ fermerFichier(infoSalle, "fichier \"info_salle.txt\", fonction \"sauvegarderInfoSalleIndiviuelleNiveau\""); sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/info_ennemi.txt", personnage.nom, indexSalle + 1); /* On ouvre le fichier contenant les infos des ennemis de la salle */ infoEnnemi = ouvrirFichier(chemin, "w+", "fichier \"info_ennemi.txt\", fonction \"sauvegarderInfoSalleIndiviuelleNiveau\""); /* Pour chaque ennemi */ for(indexEnnemi = 0; indexEnnemi < niveauActuel.salle[indexSalle].nbEnnemi; ++indexEnnemi) { /* On ecrit ses caracteristiques */ fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].position[LIG]); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].position[COL]); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbVie); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].degatAttaque); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].protection); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].porteeAttaque); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].estModeFocus); fprintf(infoEnnemi, "%d\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbTourFocus); fprintf(infoEnnemi, "%d\n\n", niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbTourAttendreFocus); } /* On ferme le fichier contenant les infos des ennemis de la salle */ fermerFichier(infoEnnemi, "fichier \"info_ennemi.txt\", fonction \"sauvegarderInfoSalleIndiviuelleNiveau\""); }
/* Sauvegarde les tresors de l'inventaire dans le fichier Inventaire/tresor.txt */ void sauvegarderTresorInventaire(void) { FILE *fichierTresor; char chemin[TAILLE_MAX]; compteur indexTresor; sprintf(chemin, "Sauvegarde/%s/Inventaire/tresor.txt", personnage.nom); /* On ouvre le fichier Inventaire/tresor.txt */ fichierTresor = ouvrirFichier(chemin, "w+", "fichier \"armure.txt\", fonction \"sauvegarderTresorInventaire\""); /* On ecrit les donnees des tresors avec le nom, et le cout (pour les NB_TRESOR_MAX) */ for(indexTresor = 0; indexTresor < NB_TRESOR_MAX; ++indexTresor) { fprintf(fichierTresor, "%s\n", inventaire.tresor[indexTresor].nom); fprintf(fichierTresor, "%d\n", inventaire.tresor[indexTresor].cout); } fprintf(fichierTresor, "%d\n", inventaire.tresorActuel); /* On ferme le fichier Inventaire/tresor.txt */ fermerFichier(fichierTresor, "fichier \"armure.txt\", fonction \"sauvegarderTresorInventaire\""); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QObject::connect(ui->actionOuvrir,SIGNAL(triggered()),this,SLOT(ouvrirFichier())); QObject::connect(ui->actionPanneaux_Rouges,SIGNAL(triggered()),this,SLOT(extrairePanneauxRouges())); }
/* Sauvegarde la forme de la salle indexSalle */ void sauvegarderFormeSalleIndividuelleNiveau(const unsigned int indexSalle) { FILE *salle; char chemin[TAILLE_MAX]; compteur indexLig, indexCol; sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/salle_%d.txt", personnage.nom, indexSalle + 1, indexSalle + 1); /* On ouvre le fichier contenant la forme de la salle */ salle = ouvrirFichier(chemin, "w+", "fichier \"salle\", fonction \"sauvegarderFormeSalleIndividuelleNiveau\""); /* Pour chaque ligne de la salle */ for(indexLig = 0; indexLig < LARGUEUR_SALLE; ++indexLig) { /* Pour chaque colonne de la salle */ for(indexCol = 0; indexCol < LONGUEUR_SALLE; ++indexCol) { /* On la sauvegarde dans le fichier */ fprintf(salle, "%c", niveauActuel.salle[indexSalle].mapSalle[indexLig][indexCol]); } fprintf(salle, "\n"); } /* On ferme le fichier contenant la forme de la salle */ fermerFichier(salle, "fichier \"salle\", fonction \"sauvegarderFormeSalleIndividuelleNiveau\""); }
int main(int argc, char **argv) { FILE *f = NULL; Reseau *R = creerReseau(); ListeChaine *L = creerListeChaine(); if (argc == 2) { fprintf(stdout, "Ouverture du fichier %s\n", argv[1]); f = ouvrirFichier(argv[1]); } int choix = -1; while (choix != 0) { showMenu(); choix = readNombre(); callChoix(&f, choix, &R, &L); } printf("Fermeture en cours\n"); if (f) { fermerFichier(f); } freeReseau(R); freeListeChaine(L); return 0; }
void ecrireComb(char* nom, int m, int n) { FILE *descFic = NULL; ouvrirFichier (nom, &descFic, "w"); int i; unsigned char c[100]; for (i = 0; i < n; i++) c[i] = n - i; while (1) { for (i = n; i--;) { fprintf(descFic, "-%d", c[i]); if(i |= i) fprintf(descFic, " "); else fprintf(descFic, " 0\n"); } /* this check is not strictly necessary, but if m is not close to n, it makes the whole thing quite a bit faster */ if (c[i]++ < m) continue; for (i = 0; c[i] >= m - i;) if (++i >= n) return; for (c[i]++; i; i--) c[i-1] = c[i] + 1; } }
void ecrireGraph (char *nom, int k) { FILE *descFic = NULL; ouvrirFichier (nom, &descFic, "w"); ecrireEnTete (descFic, "p cnf ", k); for(int x=1; x<=nb_sommet(); x++) { fprintf(descFic, " %d ", x ); for(int y=0; y<=nb_sommet(); y++) { if( (est_adjacent(x,y)==1) ) { fprintf(descFic, " %d ", y); } } fprintf(descFic, " 0\n"); } fclose (descFic); }
void recupererInformationPersonnage(const char *nomPersonnage) { FILE *infoPersonnage; char chemin[TAILLE_MAX]; sprintf(chemin, "Sauvegarde/%s/detail_personnage.txt", nomPersonnage); infoPersonnage = ouvrirFichier(chemin, "r", "fichier \"detail_personnage.txt\", fonction \"recupererInformationPersonnage\""); lire(infoPersonnage, personnage.nom); lire(infoPersonnage, personnage.race); fscanf(infoPersonnage, "%d\n", &(personnage.niveauEXPActuel)); fscanf(infoPersonnage, "%d\n", &(personnage.niveauActuel)); fscanf(infoPersonnage, "%d\n", &(personnage.lvl)); lire(infoPersonnage, personnage.metier); fscanf(infoPersonnage, "%d\n", &(personnage.sante)); fscanf(infoPersonnage, "%d\n", &(personnage.santeActuelle)); fscanf(infoPersonnage, "%d\n", &(personnage.protection)); fscanf(infoPersonnage, "%d\n", &(personnage.degatParTour)); fscanf(infoPersonnage, "%d\n", &(personnage.attaque.aAttaqueEnnemi)); fscanf(infoPersonnage, "%d\n", &(personnage.attaque.indexEnnemiAttaque)); fermerFichier(infoPersonnage, "fichier \"detail_personnage.txt\", fonction \"recupererInformationPersonnage\""); }
void histogramme_dat(char* hnom, histo h){ FILE *hfile = NULL; ouvrirFichier (hnom, &hfile, "w"); int i; for (i = 0; i < VAL_MAX; i++) fprintf(hfile,"%d %f \n", i,h[i]); fclose(hfile); }
/* Sauvegarde la caverne du niveau */ void sauvegarderCaverneNiveau(void) { FILE *infoCaverne; char chemin[TAILLE_MAX]; compteur indexLig, indexEnnemi; sprintf(chemin, "Sauvegarde/%s/Niveau/Caverne/info_caverne.txt", personnage.nom); /* On ouvre le fichier contenant toutes les infos sur la caverne */ infoCaverne = ouvrirFichier(chemin, "w+", "fichier \"info_caverne.txt\", fonction \"sauvegarderCaverneNiveau\""); /* On ecrit les infos principales sur la caverne */ fprintf(infoCaverne, "%d\n", niveauActuel.salleCaverne); fprintf(infoCaverne, "%d\n", niveauActuel.estDansCaverne); /* Si il y a une caverne dans le niveau */ if(niveauActuel.salleCaverne != -1) { /* On ecrit les caracteristiques de la caverne (position, forme, ennemi) */ /* Position */ fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.directionEntree); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ligDebut); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.colDebut); /* Forme */ for(indexLig = 0; indexLig < LARGUEUR_SALLE; ++indexLig) fprintf(infoCaverne, "%s", niveauActuel.salle[niveauActuel.salleCaverne].caverne.mapSalle[indexLig]); /* Ennemi */ fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.nbEnnemi); for(indexEnnemi = 0; indexEnnemi < niveauActuel.salle[niveauActuel.salleCaverne].caverne.nbEnnemi; ++indexEnnemi) { fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].position[LIG]); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].position[COL]); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbVie); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].degatAttaque); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].protection); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].porteeAttaque); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].estModeFocus); fprintf(infoCaverne, "%d\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbTourFocus); fprintf(infoCaverne, "%d\n\n", niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbTourAttendreFocus); } } /* On ferme le fichier contenant toutes les infos sur la caverne */ fermerFichier(infoCaverne, "fichier \"info_caverne.txt\", fonction \"sauvegarderCaverneNiveau\""); }
void chargerInfoSalleIndiviuelleNiveau(const unsigned int indexSalle) { FILE *infoSalle, *infoEnnemi; char chemin[TAILLE_MAX]; compteur indexEnnemi; sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/info_salle.txt", personnage.nom, indexSalle + 1); infoSalle = ouvrirFichier(chemin, "r", "fichier \"info_salle.txt\", fonction \"chargerInfoSalleIndiviuelleNiveau\""); fscanf(infoSalle, "%d\n", &(niveauActuel.salle[indexSalle].nbCoffre)); fscanf(infoSalle, "%d\n", &(niveauActuel.salle[indexSalle].nbEnnemi)); fermerFichier(infoSalle, "fichier \"info_salle.txt\", fonction \"chargerInfoSalleIndiviuelleNiveau\""); sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/info_ennemi.txt", personnage.nom, indexSalle + 1); infoEnnemi = ouvrirFichier(chemin, "r", "fichier \"info_ennemi.txt\", fonction \"chargerInfoSalleIndiviuelleNiveau\""); for(indexEnnemi = 0; indexEnnemi < niveauActuel.salle[indexSalle].nbEnnemi; ++indexEnnemi) { fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].position[LIG])); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].position[COL])); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbVie)); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].degatAttaque)); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].protection)); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].porteeAttaque)); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].estModeFocus)); fscanf(infoEnnemi, "%d\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbTourFocus)); fscanf(infoEnnemi, "%d\n\n", &(niveauActuel.salle[indexSalle].ennemi[indexEnnemi].nbTourAttendreFocus)); } fermerFichier(infoEnnemi, "fichier \"info_ennemi.txt\", fonction \"chargerInfoSalleIndiviuelleNiveau\""); }
void recupererNomSauvegarde(char baseNomSauvegarde[NB_SAUVEGARDE][TAILLE_MAX]) { FILE *fichierSauvegarde; compteur indexSauvegarde; fichierSauvegarde = ouvrirFichier("Sauvegarde/nom_sauvegarde.txt", "r", "fichier \"nom_sauvegarde.txt\", fonction \"recupererNomSauvegarde\""); for(indexSauvegarde = 0; indexSauvegarde < NB_SAUVEGARDE; ++indexSauvegarde) lire(fichierSauvegarde, baseNomSauvegarde[indexSauvegarde]); fermerFichier(fichierSauvegarde, "fichier \"nom_sauvegarde.txt\", fonction \"recupererNomSauvegarde\""); }
void sauvegarderCleInventaire(void) { FILE *fichierCle; char chemin[TAILLE_MAX]; sprintf(chemin, "Sauvegarde/%s/Inventaire/cle.txt", personnage.nom); fichierCle = ouvrirFichier(chemin, "w+", "fichier \"cle.txt\", fonction \"sauvegarderCleInventaire\""); fprintf(fichierCle, "%d\n", inventaire.possedeCleFinNiveau); fermerFichier(fichierCle, "fichier \"cle.txt\", fonction \"sauvegarderCleInventaire\""); }
void initialiserCleInventaire(void) { FILE *fichierCle; char chemin[TAILLE_MAX]; sprintf(chemin, "Sauvegarde/%s/Inventaire/cle.txt", personnage.nom); fichierCle = ouvrirFichier(chemin, "w+", "fichier \"cle.txt\", fonction \"initialiserCleInventaire\""); fprintf(fichierCle, "0\n"); fermerFichier(fichierCle, "fichier \"cle.txt\", fonction \"initialiserCleInventaire\""); }
// Ecrit une image en ndg void ecrireNdgImage (char *nom, ndgIm im) { FILE *descFic = NULL; ouvrirFichier (nom, &descFic, "w"); ecrireEnTete (descFic, "P2"); for (int y=0; y < HAUTEUR; y++) { for (int x=0; x < LARGEUR; x++) fprintf (descFic, "%d ", im[x][y]); fprintf (descFic, "\n"); } fclose (descFic); }
void chargerFormeSalleIndividuelleNiveau(const unsigned int indexSalle) { FILE *salle; char chemin[TAILLE_MAX]; compteur indexLig; sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/salle_%d.txt", personnage.nom, indexSalle + 1, indexSalle + 1); salle = ouvrirFichier(chemin, "r", "fichier \"salle\", fonction \"chargerFormeSalleIndividuelleNiveau\""); for(indexLig = 0; indexLig < LARGUEUR_SALLE; ++indexLig) lire(salle, niveauActuel.salle[indexSalle].mapSalle[indexLig]); fermerFichier(salle, "fichier \"salle\", fonction \"chargerFormeSalleIndividuelleNiveau\""); }
// Lecture d'une image en ndg: mise a jour de la // structure de donnees de type ndgIm void lireNdgImage (char *nom, ndgIm im) { FILE *descFic = NULL; int c, x, y; ouvrirFichier (nom, &descFic, "r"); lireEnTete (descFic, "P2"); for (y=0; y < HAUTEUR; y++) for (x=0; x < LARGEUR; x++) { fscanf (descFic, "%d", &c); im [x][y] = c; } fclose (descFic); }
int main(int argc, char **argv) { FILE *f = NULL; FILE *output = NULL; Reseau *R = NULL; ListeChaine *L = NULL; char *filename = NULL; int i; if (argc < 2) { leverErreur("Usage : ./convertchaine *.res"); return 1; } for (i = 1; i < argc; i++) { f = ouvrirFichier(argv[i]); if (f == NULL) { continue; } L = creerListeChaine(); R = creerReseau(); lecture_fichier_reseau(f, R); recree_liste_chaine(L, R); filename = basename(argv[i]); fprintf(stderr, "Conversion en ListeChaine du fichier %s...\n", argv[i]); filename = strtok(filename, "."); filename = strcat(filename, ".cha"); output = fopen(filename, "w"); if (!output) { leverErreur("Erreur création fichier de sortie"); freeReseau(R); freeListeChaine(L); fermerFichier(f); return 1; } ecrit_chaine_txt(L, output); fermerFichier(output); fermerFichier(f); freeReseau(R); freeListeChaine(L); } return 0; }
void chargerCaverneNiveau(void) { FILE *infoCaverne; char chemin[TAILLE_MAX]; compteur indexLig, indexEnnemi; sprintf(chemin, "Sauvegarde/%s/Niveau/Caverne/info_caverne.txt", personnage.nom); infoCaverne = ouvrirFichier(chemin, "r", "fichier \"info_caverne.txt\", fonction \"chargerCaverneNiveau\""); fscanf(infoCaverne, "%d\n", &(niveauActuel.salleCaverne)); fscanf(infoCaverne, "%d\n", &(niveauActuel.estDansCaverne)); if(niveauActuel.salleCaverne != -1) { fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.directionEntree)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ligDebut)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.colDebut)); for(indexLig = 0; indexLig < LARGUEUR_SALLE; ++indexLig) lire(infoCaverne, niveauActuel.salle[niveauActuel.salleCaverne].caverne.mapSalle[indexLig]); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.nbEnnemi)); for(indexEnnemi = 0; indexEnnemi < niveauActuel.salle[niveauActuel.salleCaverne].caverne.nbEnnemi; ++indexEnnemi) { fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].position[LIG])); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].position[COL])); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbVie)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].degatAttaque)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].protection)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].porteeAttaque)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].estModeFocus)); fscanf(infoCaverne, "%d\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbTourFocus)); fscanf(infoCaverne, "%d\n\n", &(niveauActuel.salle[niveauActuel.salleCaverne].caverne.ennemi[indexEnnemi].nbTourAttendreFocus)); } } fermerFichier(infoCaverne, "fichier \"info_caverne.txt\", fonction \"chargerCaverneNiveau\""); }
// Ecrit une image en ndg void ecrireCoulImage (char *nom, coulIm im) { FILE *descFic = NULL; int x, y, z; ouvrirFichier (nom, &descFic, "w+"); ecrireEnTete (descFic, "P3"); for (y=0; y < HAUTEUR; y++) { for (x=0; x < LARGEUR; x++) for (z=0; z<3; z++) fprintf (descFic, "%d ", im[x][y][z]); fprintf (descFic, "\n"); } fclose (descFic); }
void lireEtAfficher(const char *chemin) { FILE *fichier; char buffer[TAILLE_MAX]; fichier = ouvrirFichier(chemin, "r", "fonction \"lireEtAfficher\""); while(!feof(fichier)) { fgets(buffer, TAILLE_MAX, fichier); if(!feof(fichier)) printf("%s", buffer); } fermerFichier(fichier, "fonction \"lireEtAfficher\""); }
// Lecture d'une image en ndg: mise a jour de la // structure de donnees de type ndgIm void lireCoulImage (char *nom, coulIm im) { FILE *descFic = NULL; int c, x, y, z; ouvrirFichier (nom, &descFic, "r"); lireEnTete (descFic, "P3"); for (y=0; y < HAUTEUR; y++) for (x=0; x < LARGEUR; x++) { for (z=0; z<3; z++) { fscanf (descFic, "%d", &c); im[x][y][z] = c; } } fclose (descFic); }
// Ecrit une image en ndg void ecrireNdgImage (char *nom, ndgIm im) { FILE *descFic = NULL; int x, y; ouvrirFichier (nom, &descFic, "w"); ecrireEnTete (descFic, "P2"); for (y=0; y < HAUTEUR; y++) { for (x=0; x < LARGEUR; x++) { fprintf (descFic, "%d ", im[x][y]); } fprintf (descFic, "\n"); } fclose (descFic); printf("Ecriture du fichier : %s\n", nom); }
void sauvegarderTresorInventaire(void) { FILE *fichierTresor; char chemin[TAILLE_MAX]; compteur indexTresor; sprintf(chemin, "Sauvegarde/%s/Inventaire/tresor.txt", personnage.nom); fichierTresor = ouvrirFichier(chemin, "w+", "fichier \"armure.txt\", fonction \"sauvegarderTresorInventaire\""); for(indexTresor = 0; indexTresor < NB_TRESOR_MAX; ++indexTresor) { fprintf(fichierTresor, "%s\n", inventaire.tresor[indexTresor].nom); fprintf(fichierTresor, "%d\n", inventaire.tresor[indexTresor].cout); } fprintf(fichierTresor, "%d\n", inventaire.tresorActuel); fermerFichier(fichierTresor, "fichier \"armure.txt\", fonction \"sauvegarderTresorInventaire\""); }
void sauvegarderFormeSalleIndividuelleNiveau(const unsigned int indexSalle) { FILE *salle; char chemin[TAILLE_MAX]; compteur indexLig, indexCol; sprintf(chemin, "Sauvegarde/%s/Niveau/Salle_%d/salle_%d.txt", personnage.nom, indexSalle + 1, indexSalle + 1); salle = ouvrirFichier(chemin, "w+", "fichier \"salle\", fonction \"sauvegarderFormeSalleIndividuelleNiveau\""); for(indexLig = 0; indexLig < LARGUEUR_SALLE; ++indexLig) { for(indexCol = 0; indexCol < LONGUEUR_SALLE; ++indexCol) fprintf(salle, "%c", niveauActuel.salle[indexSalle].mapSalle[indexLig][indexCol]); fprintf(salle, "\n"); } fermerFichier(salle, "fichier \"salle\", fonction \"sauvegarderFormeSalleIndividuelleNiveau\""); }
void initialiserTresorInventaire(void) { FILE *fichierTresor; char chemin[TAILLE_MAX]; compteur indexTresor; sprintf(chemin, "Sauvegarde/%s/Inventaire/tresor.txt", personnage.nom); fichierTresor = ouvrirFichier(chemin, "w+", "fichier \"armure.txt\", fonction \"initialiserTresorInventaire\""); for(indexTresor = 0; indexTresor < NB_TRESOR_MAX; ++indexTresor) { fprintf(fichierTresor, "Rien\n"); fprintf(fichierTresor, "0\n"); } fprintf(fichierTresor, "0\n"); fermerFichier(fichierTresor, "fichier \"armure.txt\", fonction \"initialiserTresorInventaire\""); }
int main(/*int argc, char* argv[]*/){ char selection; char filename[10]; //if(argc == 0){// si le programme est lancé sans un fichier on affiche le menu while(1){ afficherMenu(); selection = GetChar(); switch (selection){ case '1':// creation du fichier creerFichier(); break; case '2' :// ouverture d'un fichier existant Printf("Quel fichier voulez vous ouvrir ?\n",0); Scanf("%s",filename); ouvrirFichier(filename); break; case '3' : //on quitte l'application Printf("Au Revoir\n",0); Exit(0); break; default : // au cas ou on rentre une commande qui n'est pas dans le menu Printf("Commande non reconnu\n",0); Printf("Fonctionnement : my_notepad <FILE>...\n",0); break; } } return 0; /*}else{ // si le programme est lancé avec un fichier alors on l'affiche // si le fichier existe on l'ouvre if(ouvrirFichier(argv[1]) == -1){ creerFichier(argv[1]);//si le fichier n'existe pas on le crée et on l'ouvre. } }*/ //return 0; }