time + fix leak memories
This commit is contained in:
15
function.c
15
function.c
@@ -37,6 +37,17 @@ creatArea2D (const unsigned int N)
|
|||||||
return tab2d;
|
return tab2d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void free2D(unsigned short int **tab, int N)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < N; ++i)
|
||||||
|
{
|
||||||
|
free(tab[i]);
|
||||||
|
}
|
||||||
|
free(tab);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
short int
|
short int
|
||||||
canIGoDirection (short int valueOfNCase, short int valueOfNPlusOneCase)
|
canIGoDirection (short int valueOfNCase, short int valueOfNPlusOneCase)
|
||||||
{
|
{
|
||||||
@@ -290,7 +301,7 @@ blockBox (unsigned short int **tab2d, vect box_coor)
|
|||||||
{
|
{
|
||||||
int nbr_touch = 0;
|
int nbr_touch = 0;
|
||||||
vect card[4] = { { 0, -1 }, { 1, 0 }, { 0, 1 }, { -1, 0 } };
|
vect card[4] = { { 0, -1 }, { 1, 0 }, { 0, 1 }, { -1, 0 } };
|
||||||
int *indice_card = NULL;
|
int indice_card[4] = {0};
|
||||||
int id_box = -1;
|
int id_box = -1;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
@@ -304,8 +315,6 @@ blockBox (unsigned short int **tab2d, vect box_coor)
|
|||||||
{
|
{
|
||||||
id_box = nbr_touch -1;
|
id_box = nbr_touch -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
indice_card = realloc (indice_card, sizeof (int) * nbr_touch);
|
|
||||||
indice_card[nbr_touch - 1] = i;
|
indice_card[nbr_touch - 1] = i;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
function.h
11
function.h
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#define EMPTY 0
|
#define EMPTY 0
|
||||||
#define WALL 1
|
#define WALL 1
|
||||||
@@ -11,14 +12,24 @@
|
|||||||
#define BOX_ON_TARGET 4
|
#define BOX_ON_TARGET 4
|
||||||
#define PLAYER 5
|
#define PLAYER 5
|
||||||
#define PLAYER_ON_TARGET 6
|
#define PLAYER_ON_TARGET 6
|
||||||
|
|
||||||
typedef struct Vecteur
|
typedef struct Vecteur
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
} vect;
|
} vect;
|
||||||
|
|
||||||
|
typedef struct Score
|
||||||
|
{
|
||||||
|
time_t before;
|
||||||
|
time_t after;
|
||||||
|
unsigned int move_player;
|
||||||
|
unsigned int move_box;
|
||||||
|
} score;
|
||||||
|
|
||||||
|
|
||||||
unsigned short int **creatArea2D(const unsigned int N);
|
unsigned short int **creatArea2D(const unsigned int N);
|
||||||
|
void free2D(unsigned short int **tab, int N);
|
||||||
void screenDisplay( unsigned short int **tab,int size);
|
void screenDisplay( unsigned short int **tab,int size);
|
||||||
void inGameLoop (unsigned short int **tab2d, int N, vect *playerPos, vect *targets, int nbr_targets);
|
void inGameLoop (unsigned short int **tab2d, int N, vect *playerPos, vect *targets, int nbr_targets);
|
||||||
bool isWin(unsigned short int **tab2d, vect *targets, int nbr_targets);
|
bool isWin(unsigned short int **tab2d, vect *targets, int nbr_targets);
|
||||||
|
|||||||
10
main.c
10
main.c
@@ -1,4 +1,5 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "read.h"
|
#include "read.h"
|
||||||
#include "display.h"
|
#include "display.h"
|
||||||
@@ -10,11 +11,18 @@ int main()
|
|||||||
vect *playerPos = (vect *)malloc(sizeof(vect));
|
vect *playerPos = (vect *)malloc(sizeof(vect));
|
||||||
vect *targets;
|
vect *targets;
|
||||||
int nbr_targets;
|
int nbr_targets;
|
||||||
|
score playerScore;
|
||||||
|
playerScore.before = time(NULL);
|
||||||
unsigned short int **tab2d = creatArea2D(SIZE_PLAY);
|
unsigned short int **tab2d = creatArea2D(SIZE_PLAY);
|
||||||
targets = fileToTab2D("test.txt", tab2d, SIZE_PLAY, playerPos, &nbr_targets);
|
targets = fileToTab2D("test.txt", tab2d, SIZE_PLAY, playerPos, &nbr_targets);
|
||||||
screenDisplay(tab2d, SIZE_PLAY);
|
screenDisplay(tab2d, SIZE_PLAY);
|
||||||
printf("player (%d, %d)", playerPos->x, playerPos->y);
|
|
||||||
inGameLoop(tab2d, SIZE_PLAY, playerPos, targets, nbr_targets);
|
inGameLoop(tab2d, SIZE_PLAY, playerPos, targets, nbr_targets);
|
||||||
|
|
||||||
|
|
||||||
|
playerScore.after = time(NULL);
|
||||||
|
printf("%ld\n", playerScore.after - playerScore.before);
|
||||||
|
free2D(tab2d, SIZE_PLAY);
|
||||||
free(playerPos);
|
free(playerPos);
|
||||||
|
free(targets);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user