This commit is contained in:
lecointre
2025-12-01 22:10:36 +01:00
parent 99cb83582a
commit 9b3c3fcec3
8 changed files with 225 additions and 23 deletions
+11 -21
View File
@@ -4,20 +4,14 @@
*/
#include "menu_view.h"
#include "game_logic.h" /* Nouveau: pour initialiser le jeu */
#include "images.h" /* Nouveau: pour le chargement des tuiles */
#include "utils.h" /* Nouveau: pour l'aléatoire */
#include "game_logic.h"
#include "images.h"
#include "game_view.h" /* NOUVEAU: Pour la boucle de jeu */
#include "defs.h" /* NOUVEAU: Pour les constantes de fenêtre */
#include <graph.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h> /* Pour srand() */
/* Constantes de la fenêtre */
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
/* Temps de rafraîchissement (pour économiser le CPU) */
#define REFRESH_CYCLE 50000L /* 50 ms */
#include <time.h>
int main(void)
{
@@ -28,9 +22,7 @@ int main(void)
InitialiserGraphique();
CreerFenetre(10, 10, WINDOW_WIDTH, WINDOW_HEIGHT);
/* Initialisation du générateur aléatoire (OBLIGATOIRE pour game_shuffle) */
srand((unsigned int)time(NULL));
menu_init(&menu_state);
next_update = Microsecondes() + REFRESH_CYCLE;
@@ -41,7 +33,6 @@ int main(void)
if (Microsecondes() > next_update)
{
menu_render(&menu_state);
/* Force l'affichage */
CopierZone(0, 0, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, 0);
next_update = Microsecondes() + REFRESH_CYCLE;
}
@@ -54,7 +45,7 @@ int main(void)
menu_handle_key(&menu_state);
}
/* 3. Transition vers le jeu ou sortie */
/* 3. Transition vers le jeu */
if (menu_state.ready_to_play == 1) {
image_source_t img_src;
@@ -62,22 +53,21 @@ int main(void)
game_state_t game_state;
int num_tiles = menu_state.rows * menu_state.cols;
/* 3.1. Préparation des données et allocation */
/* Préparation des données et initialisation du moteur de jeu */
img_src = get_image_source(menu_state.selected_image);
tiles = images_slice(img_src, menu_state.rows, menu_state.cols);
/* Initialisation du jeu */
game_init(&game_state, menu_state.rows, menu_state.cols, tiles);
/* Mélange (Partie 3) */
/* Mélange le plateau */
game_shuffle_safe(&game_state, 500);
printf("DEBUG: Jeu prêt. Grille %d x %d melangee. Lancement de la boucle de jeu...\n",
game_state.rows, game_state.cols);
/* TODO: Boucle de JEU (GRANDE PARTIE 3) */
/* Lancement de la BOUCLE DE JEU */
game_loop(&game_state);
/* 3.2. Nettoyage après la fin de la partie */
/* Nettoyage final (après que le joueur a fini de jouer) */
images_free_tiles(tiles, num_tiles);
game_free(&game_state);
}