choix map fonctionne, a faire : score , affichage lose et win, custom.

Petit fix pour la lose 1 touché
This commit is contained in:
2024-12-28 23:44:18 +01:00
parent 528926a0ce
commit 551144b30d
3 changed files with 57 additions and 18 deletions

View File

@@ -51,5 +51,6 @@ vect plusVect (vect one, vect two);
int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets, int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
int nbr_targets, dis *display_user, score *score_user, bool menu); int nbr_targets, dis *display_user, score *score_user, bool menu);
char *timeToText(time_t time); char *timeToText(time_t time);
void nullScore(score *player_score);
#endif // FONCTION_H #endif // FONCTION_H

View File

@@ -307,6 +307,8 @@ int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
switch (input) switch (input)
{ {
case SDL_SCANCODE_ESCAPE: case SDL_SCANCODE_ESCAPE:
if(menu) return 0;
return -1;
finish = true; finish = true;
break; break;
case SDL_SCANCODE_D: case SDL_SCANCODE_D:
@@ -396,10 +398,9 @@ int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
vect size_txt = { display_user->size_menu, vect size_txt = { display_user->size_menu,
display_user->size_window }; display_user->size_window };
char txt_empty[100] char txt_empty[100]
= " " = "Echap pour quitter ";
" ";
displayTextSDL (display_user, txt_empty, coor_time, displayTextSDL (display_user, txt_empty, coor_time,
size_txt, 100); size_txt, 80);
} }
} }
} }
@@ -614,3 +615,11 @@ char *timeToText (time_t time)
snprintf (result, 20, "Time : %02d:%02d", min, sec); snprintf (result, 20, "Time : %02d:%02d", min, sec);
return result; return result;
} }
void nullScore(score *player_score)
{
player_score->after = 0;
player_score->before = 0;
player_score->move_box = 0;
player_score->move_player = 0;
}

View File

@@ -24,37 +24,66 @@ int main ()
initSDL (&display_user); initSDL (&display_user);
vect *playerPos = (vect *)malloc (sizeof (vect)); vect *playerPos = (vect *)malloc (sizeof (vect));
vect *targets; vect *targets = {0};
int nbr_targets; int nbr_targets;
score playerScore; score playerScore = {0};
char **tab2d = creatArea2D (SIZE_PLAY, SIZE_PLAY); char **tab2d = creatArea2D (SIZE_PLAY, SIZE_PLAY);
score score_user = {0, 0, 0,0}; score score_user = {0, 0, 0,0};
vect dim = {SIZE_PLAY, SIZE_PLAY};
int output = -1;
vect dim_menu = {0, 0}; vect dim_menu = {0, 0};
vect pos = {4, 1}; vect pos = {4, 1};
char**menu = generatorMenu("maps", &dim_menu, &pos); char**menu = generatorMenu("maps", &dim_menu, &pos);
printf("x %d, y %d\n", dim_menu.x, dim_menu.y);
screenDisplay(menu, dim_menu.x, dim_menu.y);
targets vect null = {0, 0};
= fileToTab2D ("maps/original_1.txt", tab2d, SIZE_PLAY, playerPos, &nbr_targets); printf("output : %d\n", output);
inGameLoop (menu, &dim_menu, &pos, targets, nbr_targets, output = inGameLoop (menu, &dim_menu, &pos, &null , 1,
&display_user, &score_user, true); &display_user, &score_user, true);
nullScore(&score_user);
SDL_RenderClear(display_user.renderer); SDL_RenderClear(display_user.renderer);
vect dim = {SIZE_PLAY, SIZE_PLAY};
inGameLoop (tab2d, &dim, playerPos, targets, nbr_targets,
&display_user, &score_user, false); while(output != 0)
{
SDL_RenderClear(display_user.renderer);
if(output == -1)
{
menu = generatorMenu("maps", &dim_menu, &pos);
pos.x = 4; pos.y = 1;
output = inGameLoop(menu, &dim_menu, &pos, &null, 1, &display_user, &score_user, true);
nullScore(&score_user);
}
else
{
char txt[30] = "";
if(output <= 3)
{
snprintf(txt, 30, "maps/original_%d.txt", output);
}
else
{
snprintf(txt, 30, "maps/custom_%d.txt", output - 4);
}
if (targets != NULL) free(targets);
if (tab2d != NULL) free2D(tab2d, SIZE_PLAY);
tab2d = creatArea2D(SIZE_PLAY, SIZE_PLAY);
targets = fileToTab2D(txt, tab2d, SIZE_PLAY, playerPos, &nbr_targets);
output = inGameLoop(tab2d, &dim, playerPos, targets, nbr_targets, &display_user, &score_user, false);
}
}
//screenDisplay(tab2d, SIZE_PLAY, SIZE_PLAY); //screenDisplay(tab2d, SIZE_PLAY, SIZE_PLAY);
SDL_DestroyWindow (display_user.window); SDL_DestroyWindow (display_user.window);
SDL_DestroyRenderer (display_user.renderer); SDL_DestroyRenderer (display_user.renderer);
free2D (tab2d, SIZE_PLAY); if (tab2d != NULL)free2D (tab2d, SIZE_PLAY);
free (playerPos); if (playerPos != NULL)free (playerPos);
free (targets); if (targets != NULL)free (targets);
SDL_Quit (); SDL_Quit ();
return 0; return 0;
} }