Ajout du timer et finalisation du code + Ajout des commentaires

This commit is contained in:
Axel PIETROIS 2022-12-11 12:36:12 +01:00
parent 2f7125ca22
commit 9613b590c4

View File

@ -1,9 +1,9 @@
#include "timer.h"
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <graph.h> #include <graph.h>
int Trouvee(int* found, int carte){ int Trouvee(int* found, int carte){
//Cette fonction vérifie si la carte est présente dans le tableau found, qui contient toutes les paires trouvées
int i; int i;
for (i=0;i<10;i++){ for (i=0;i<10;i++){
if (found[i] == carte) return 1; if (found[i] == carte) return 1;
@ -76,6 +76,7 @@ void DessinerGrille(int x_g, int y_g, int x_fen, int y_fen, int triche, int* fou
} }
void Jeu(int x_g, int y_g, int x_fen, int y_fen, int* carte, int tab[4][5]){ void Jeu(int x_g, int y_g, int x_fen, int y_fen, int* carte, int tab[4][5]){
//Fonction principale du jeu (Vérifie lors d'un clic si la souris a cliqué sur une carte, et vérifie l'emplacement de cette carte et son numéro de paire dans le tableau de la grille
int l_case = (x_fen-((10*x_g)+10))/x_g; int l_case = (x_fen-((10*x_g)+10))/x_g;
int h_case = (y_fen-((10*y_g)+10))/y_g; int h_case = (y_fen-((10*y_g)+10))/y_g;
int x = 0; int x = 0;
@ -100,7 +101,8 @@ void Jeu(int x_g, int y_g, int x_fen, int y_fen, int* carte, int tab[4][5]){
} }
void GenererGrille(int x_grille, int y_grille, int tab[4][5]){ void GenererGrille(int x_grille, int y_grille, int tab[4][5]){i
//Cette fonction génère la grille aléatoirement en fonction de la taille de la grille et l'insère sous forme de paires d'int de 1 à 10 dans le tableau tab
srand(Microsecondes()); srand(Microsecondes());
int i,j; int i,j;
int coos[2]; int coos[2];
@ -125,10 +127,12 @@ void GenererGrille(int x_grille, int y_grille, int tab[4][5]){
void Triche(int* triche){ void Triche(int* triche){
//Cette fonction active ou désactive le mode de triche via une variable pour que dans n'importe quel partie du programme le mode de triche puisse être vérifié facilement
*triche = -(*triche); *triche = -(*triche);
} }
int Victoire(int* found, int x_grille, int y_grille){ int Victoire(int* found, int x_grille, int y_grille){
//Cette fonction vérifie les conditions de victoire en fonction de la taille de la grille, en vérifiant la liste des paires trouvées
int i,j; int i,j;
for (i=0;i<(x_grille*y_grille)/2;i++){ for (i=0;i<(x_grille*y_grille)/2;i++){
if (found[i] == 0) return 0; if (found[i] == 0) return 0;
@ -138,6 +142,7 @@ int Victoire(int* found, int x_grille, int y_grille){
void InsereTableau(int val, int* tab){ void InsereTableau(int val, int* tab){
//Cette fonction insère dans un tableau (Dans l'utilisation ici le tableau des paires trouvées) une valeur à la suite des valeurs différentes de 0
int i; int i;
for (i=0;i<10;i++){ for (i=0;i<10;i++){
if (tab[i] == 0){ if (tab[i] == 0){
@ -148,12 +153,17 @@ void InsereTableau(int val, int* tab){
} }
int essay(int grille_x){ int essay(int grille_x){
//Ancienne fonction main avant l'implémentation des menus, permet de jouer en fonction de la taille x de la grille
//Les tailles prévues dans le jeu ont un y fixe, faisant que seul le x est nécessaire en paramètre.
//Peu importe le grille_x en paramètre, le jeu s'adaptera dans une taille de fenêtre fixe.
//La fonction ne renvoie rien puisque la fin du jeu signifie la fin du programme.
char afficher_temps[20]; char afficher_temps[20];
int tab[4][5] = {{},{},{},{}}; int tab[4][5] = {{},{},{},{}};
int o; int o;
unsigned long temps_microsec = Microsecondes(); unsigned long temps_microsec = Microsecondes();
unsigned long temps_ecoule = 0; unsigned long temps_ecoule = 0;
unsigned long temps_ancien = -1; unsigned long temps_ancien = -1;
unsigned long temps_actuel = 0;
int i,j; int i,j;
int x=1; int x=1;
int temps; int temps;
@ -169,9 +179,14 @@ int essay(int grille_x){
DessinerGrille(grille_x,4,1500,844,0,found,tab); DessinerGrille(grille_x,4,1500,844,0,found,tab);
while(1){ while(1){
if (x==1){ if (x==1){
timer(&temps_ecoule, temps_microsec); temps_actuel = Microsecondes();
if(temps_actuel > temps_microsec + 1000000){
temps_microsec = temps_actuel;
temps_ecoule = temps_ecoule + 1;
printf("%d\n", temps_ecoule);
} }
if (temps_ecoule = temps_ancien+1){ }
if (temps_ecoule == temps_ancien+1){
temps_ancien = temps_ecoule; temps_ancien = temps_ecoule;
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));
RemplirRectangle(675,25,160,30); RemplirRectangle(675,25,160,30);
@ -223,6 +238,7 @@ int essay(int grille_x){
temps = Microsecondes(); temps = Microsecondes();
retourne_time = Microsecondes()+1000000; retourne_time = Microsecondes()+1000000;
while (temps < retourne_time){ while (temps < retourne_time){
temps = Microsecondes(); temps = Microsecondes();
} }
DessinerGrille(grille_x,4,1500,844,0,found,tab); DessinerGrille(grille_x,4,1500,844,0,found,tab);