Correction Affichage, Ajout Best Score par lecture de ficheirs

This commit is contained in:
Vincent 2023-12-23 16:00:48 +01:00
parent 7afb378891
commit c5b8ea1870
11 changed files with 98 additions and 26 deletions

82
gui.c

@ -2,35 +2,91 @@
#include <stdio.h>
#include <graph.h>
void Menu(unsigned long *bestscore)
int lireScore()
{
int score;
FILE* fichier = fopen("score.txt", "r");
if (fichier == NULL)
{
fprintf(stderr, "Le fichier score.txt n'existe pas. Création du fichier avec la valeur 0.\n");
score = 0;
/* Ouvrir le fichier en mode écriture pour créer le fichier s'il n'existe pas */
fichier = fopen("score.txt", "w");
if (fichier == NULL)
{
fprintf(stderr, "Erreur lors de la création du fichier score.txt\n");
return -1;
}
/* Écrire la valeur 0 par défaut */
fprintf(fichier, "%d\n", score);
fclose(fichier);
return score;
}
fscanf(fichier, "%d", &score);
fclose(fichier);
return score;
}
void sauvegarderScore(unsigned long nouveauScore)
{
FILE* fichier = fopen("score.txt", "w");
if (fichier == NULL)
{
fprintf(stderr, "Erreur lors de l'ouverture du fichier score.txt pour écriture\n");
return;
}
fprintf(fichier, "%ld\n", nouveauScore);
fclose(fichier);
}
void CheckScore(unsigned long nouveauScore)
{
unsigned long scoreActuel = lireScore();
if (nouveauScore > scoreActuel || scoreActuel == 0)
{
sauvegarderScore(nouveauScore);
printf("Le score a été enregistré avec succès.\n");
}
else
{
printf("Le score précédent est plus grand ou égal. Aucun changement effectué.\n");
}
}
void Menu()
{
char buf[100];
couleur text;
unsigned long bestscore = lireScore();
text=CouleurParComposante(78, 93, 47);
ChoisirEcran(0);
ChargerImage("./images/Menu.png",0,0,0,0,930,710);
ChoisirCouleurDessin(text);
snprintf(buf,100,"BEST SCORE : %07ld",*bestscore);
EcrireTexte(450,470,buf,2);
snprintf(buf,100,"BEST SCORE : %07ld",bestscore);
EcrireTexte(420,350,buf,2);
}
void Pause(unsigned long *bestscore)
void Pause()
{
char buf[100];
couleur text;
text=CouleurParComposante(78, 93, 47);
ChoisirEcran(0);
ChargerImage("./images/Pause.png",0,0,0,0,930,710);
ChoisirCouleurDessin(text);
snprintf(buf,100,"BEST SCORE : %07ld",*bestscore);
EcrireTexte(450,300,buf,2);
}
void PerduGUI(unsigned long *bestscore)
void PerduGUI()
{
char buf[100];
unsigned long bestscore = lireScore();
ChoisirEcran(0);
ChargerImage("./images/Perdu.png",0,0,0,0,930,710);
snprintf(buf,100,"BEST SCORE : %07ld",*bestscore);
EcrireTexte(450,250,buf,2);
snprintf(buf,100,"BEST SCORE : %07ld",bestscore);
EcrireTexte(420,350,buf,2);
}

11
gui.h

@ -1,10 +1,13 @@
#ifndef GUI_H
#define GUI_H
void CheckScore(unsigned long nouveauScore);
void sauvegarderScore(unsigned long nouveauScore);
int lireScore();
void Menu();
void PerduGUI(unsigned long *bestscore)
;void Pause(unsigned long *bestscore);
void Reinitialiser();
int AfficherGUI(unsigned char menu);
void PerduGUI();
void Pause();
int AfficherGUI();
#endif

Binary file not shown.

Before

(image error) Size: 40 KiB

After

(image error) Size: 23 KiB

@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://pixlr.com/fr/express/
HostUrl=https://pixlr.com/fr/express/

Binary file not shown.

Before

(image error) Size: 41 KiB

After

(image error) Size: 44 KiB

@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://pixlr.com/fr/express/
HostUrl=https://pixlr.com/fr/express/

Binary file not shown.

Before

(image error) Size: 38 KiB

After

(image error) Size: 43 KiB

@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://pixlr.com/fr/express/
HostUrl=https://pixlr.com/fr/express/

16
main.c

@ -14,7 +14,6 @@ int main()
{
unsigned char pause = 0;
unsigned long score = 0;
unsigned long bestscore = 0;
unsigned long suivant;
unsigned long suivant2;
int game_on=0;
@ -57,11 +56,8 @@ int main()
while(window_on)
{
if(perdu == 1)
{ if(score>bestscore)
{
bestscore=score;
}
PerduGUI(&bestscore);
{
PerduGUI();
if (ToucheEnAttente() == 1)
{
switch (Touche())
@ -74,7 +70,7 @@ int main()
}
else
{
Menu(&bestscore);
Menu();
if (ToucheEnAttente() == 1)
{
switch (Touche())
@ -93,6 +89,7 @@ int main()
case XK_Escape:
free(serpent);
free(pastilles);
free(obstacle);
FermerGraphique();
return EXIT_SUCCESS;
}
@ -148,6 +145,7 @@ int main()
{
free(serpent);
free(pastilles);
free(obstacle);
FermerGraphique();
return EXIT_SUCCESS;
}
@ -157,7 +155,7 @@ int main()
if(pause==1)
{
Pause(&bestscore);
Pause();
}
}
@ -189,6 +187,7 @@ int main()
}
else if (valeur_retourne == 2)
{
CheckScore(score);
perdu=1;
game_on=0;
}
@ -199,6 +198,7 @@ int main()
}
free(serpent);
free(pastilles);
free(obstacle);
FermerGraphique();
return EXIT_SUCCESS;
}

2
main.h

@ -8,7 +8,7 @@
#define T_PIXEL 15
#define DECALEMENT 30
#define PASTILLES 5
#define OBSTACLE 100
#define OBSTACLE 30

1
score.txt Normal file

@ -0,0 +1 @@
5