Je programme un jeu console de bataille navale.
Je sauvegarde les grilles et l'état de la flotte dans un fichier dont voici la structure.
### Grille du joueur ### CCC ooXD o oo o o V o o oX V XPPP o o o o C o DDDo XoX o D C o o o o o ### Grille du CPU ### o ooDD oo oo o V P o Do X X D o X o ooX ooCoV Cooo oX C o Co X oXoo Vo o D ### Armada du joueur ### P34314 C26403 C30113 D26812 D10712 D27002 V14101 V03811 V12601 V07601 ### Armada du CPU ### P12604 C26403 C26003 D23202 D20412 D18802 V12001 V16201 V04011 V19211 ### Numero du tour ### 41
|
Tout cela avec des fprintf ..etc..
Le probleme c'est que pour restaurer ces variables, j'ai besoin de me caler à des endroits précis, et je sais pas comment spécifier des lignes.
mon code de restauration pour l'instant :
Code :
- int i,j;
- FILE* fichier = NULL;
- fichier = fopen("sauv.bataille", "r" );
- if (fichier != NULL)
- {
- //On ne fait que lire le fichier, donc mode r
- fseek(fichier, 25, SEEK_SET); // /!\ On se décale de 24 caractère + 1 pour le saut de ligne pour sauter la ligne de présentation Grille joueur, ne pas modifier cette valeur.!
- for(i=0; i <= 9; i++)
- {
- for (j=0;j <= 9; j++)
- {
- fscanf(fichier, "%c", &grille_joueur->macase[i][j].valeur);
- }
- }
- //On passe a la restauration de la grille cpu
- fseek(fichier, 24, SEEK_SET);
- for(i=0; i <= 9; i++)
- {
- for (j=0;j <= 9; j++)
- {
- fscanf(fichier, "%c", &grille_cpu->macase[i][j].valeur);
- }
- }
- fclose(fichier);
|
Deja le decalage ca oblige à compter les caractères c'est assez con, et en plus pour la deuxieme grille (grille_cpu), le decalage n'est pas bon, ca marche absolument pas.
Est-ce qu'il y a un moyen de spécifier les lignes , ca serait beaucoup plus simple.
Merci
Message édité par boblenain200 le 24-11-2008 à 18:04:37