-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsauvegarde.c
151 lines (91 loc) · 3.85 KB
/
sauvegarde.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//
// Created by Admin on 27/05/2021.
//
#include <stdio.h>
#include "sauvegarde.h"
void fonction_ecriture_sauvegarde(save sauvegarde){
int i=0 ;
FILE* fichier_sauvegarde=fopen("sauvegarde.jeu","w");
if(fichier_sauvegarde != NULL){
// permet de faire que deux print f
char memoir_tampon_char [200] ;
int memoir_tampon_int[100];
// sauvegarde des donné dans deux variable
for (i=0 ; i < 200 ; i++){
memoir_tampon_char[i] = sauvegarde.grid_save[i] ;
}
for ( i=0 ; i< 10 ; i++){
memoir_tampon_int[i]=sauvegarde.Coo_save[i] ;
}
memoir_tampon_int[10] = sauvegarde.mode_rep_save ;
for ( i=11; i<16; i++){
memoir_tampon_int[i]= sauvegarde.pv_save[i-11] ;
}
for (i=16 ; i<20 ; i++ ){
memoir_tampon_int[i]=sauvegarde.inventory_save[i-16] +100; // comme ca peux importe le nombre de missile je sais que il vas prednre trois caractèr dans le fichier
}
for (i=20 ; i<25 ; i++){
memoir_tampon_int[i]= sauvegarde.orientation_save[i-20];
}
// ecriture des donné dans le fichier
for ( i =0 ; i<200 ; i++){
fprintf(fichier_sauvegarde, "%c", memoir_tampon_char[i]);
}
for ( i = 0; i<35 ; i++){
fprintf(fichier_sauvegarde, "%d", memoir_tampon_int[i]);
}
}else{
printf ( " Erreure : le fichier sauvegarde.txt pas trouver \n ");
}
fclose(fichier_sauvegarde);
}
void fonction_sauvegarde( save * sauvegarde, boat liste_bateaux[],Inventory liste_missile , Grid user_grid,Grid boat_grid,int nb_bateaux,int choix_mode_de_jeux ){
int deux_case = 0 ; // utile a la sauvegarde de coordonnés
int cent_case =0 ; //permet la sauegard du tableau user et tableau boat
save_pv( liste_bateaux,sauvegarde,nb_bateaux);
sauvegarde->mode_rep_save = choix_mode_de_jeux; // sauvegarder le mode de jeux
save_inventory (&liste_missile,sauvegarde); //sauvegarder le nombre de chaque missile
// sauvegarder les coordonees de chaque bateau
save_Coo ( liste_bateaux,sauvegarde, deux_case,nb_bateaux);
save_caracteristique_grid(&boat_grid, sauvegarde,cent_case);// sauvegarde la grid de user
cent_case += 100;
save_caracteristique_grid(&user_grid, sauvegarde,cent_case); // sauvegard la grille des bateaux
save_orientation(liste_bateaux,sauvegarde,nb_bateaux);
// toutes les donnés on ete sauvgarder il faux maintenant les ecrire dans un fichier
}
void save_inventory (Inventory * liste, save * sauvegarde ){
sauvegarde->inventory_save[0] = liste->nb_missile_artillerie ;
sauvegarde->inventory_save[1] = liste->nb_missile_bombe ;
sauvegarde->inventory_save[2] = liste->nb_missile_default ;
sauvegarde->inventory_save[3] = liste->nb_missile_tactique ;
}
void save_Coo (boat liste[], save * sauvegarde,int deux_case,int nb_bateaux){
int i = 0 ;
for (i=0 ; i<nb_bateaux ; i ++ ){
sauvegarde->Coo_save[deux_case ] = liste[i].CooX;
sauvegarde->Coo_save[deux_case +1] = liste[i].CooY;
deux_case += 2;
}
}
void save_caracteristique_grid (Grid * grid , save * sauvegarde , int cent_case){
int i = 0,j=0;
int dix_case=0;
for (j=0 ; j<10 ; j++ ){
for ( i= 0 ; i< 10 ; i++ ){
sauvegarde->grid_save[cent_case+dix_case+i] = grid->grid[i][j];
}
dix_case += 10;
}
}
void save_orientation(boat liste_bateaux[],save * sauvegarde,int nb_bateaux){
int i = 0 ;
for ( i=0 ; i <nb_bateaux ; i++){
sauvegarde->orientation_save[i] =liste_bateaux[i].orientation ;
}
}
void save_pv(boat liste_bateaux[],save * sauvegarde,int nb_bateaux){
int i = 0 ;
for (i=0; i< nb_bateaux ; i ++){ // pour sauvegarder les pv de chaque bateau
sauvegarde->pv_save[i] = liste_bateaux[i].pv;
}
}