From 0054bd14c4e5d8c5f6a5b9e8de011119640a3ffc Mon Sep 17 00:00:00 2001 From: pm240836 Date: Mon, 20 Apr 2026 10:30:50 +0000 Subject: [PATCH] =?UTF-8?q?j'ai=20ajout=C3=A9=20le=20headers=20tu=20peux?= =?UTF-8?q?=20v=C3=A9rifier=20normalement=20toutes=20les=20fonctions=20=20?= =?UTF-8?q?y=20sont?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- puzzle.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 puzzle.h diff --git a/puzzle.h b/puzzle.h new file mode 100644 index 0000000..ebd3004 --- /dev/null +++ b/puzzle.h @@ -0,0 +1,43 @@ +#ifndef PUZZLE_H +#define PUZZLE_H// PUZZLE_H + +#include +#include + +#define GRID_ROWS 8 +#define GRID_COLS 8 +#define BIT(row, col) (1ULL << ((row) * 8 + (col))) + +/* --- PIECES --- */ +#define PIECE_1 (BIT(0,0) | BIT(0,1) | BIT(0,2) | BIT(1,1) | BIT(2,1)) +#define PIECE_2 (BIT(0,1) | BIT(0,2) | BIT(1,0) | BIT(1,1)) +#define PIECE_3 (BIT(0,1) | BIT(0,2) | BIT(1,0) | BIT(1,1) | BIT(1,2)) +#define PIECE_4 (BIT(0,0) | BIT(0,1) | BIT(0,2) | BIT(1,0) | BIT(2,0)) +#define PIECE_5 (BIT(0,0) | BIT(0,1) | BIT(1,0) | BIT(2,0) | BIT(2,1)) +#define PIECE_6 (BIT(0,0) | BIT(1,0) | BIT(2,0) | BIT(3,0) | BIT(3,1)) +#define PIECE_7 (BIT(0,0) | BIT(1,0) | BIT(2,0) | BIT(2,1)) +#define PIECE_8 (BIT(0,0) | BIT(0,1) | BIT(1,1) | BIT(2,1) | BIT(2,2)) +#define PIECE_9 (BIT(0,0) | BIT(0,1) | BIT(1,1) | BIT(1,2) | BIT(1,3)) +#define PIECE_10 (BIT(0,0) | BIT(0,1) | BIT(0,2) | BIT(0,3)) + +typedef struct { + int largeur; + int hauteur; +} Dimensions; + +typedef struct { + uint64_t plateau_de_depart; + uint64_t* catalogue; + int id_piece_depart; +} ThreadArgs; + +/* --- Prototypes des fonctions --- */ +uint64_t genererGrilleDeJeu(void); +Dimensions calculer_dimensions(uint64_t piece); +uint64_t normaliser(uint64_t piece); +uint64_t rotation_90(uint64_t piece); +uint64_t miroir_horizontal(uint64_t piece); +bool trouverPremiereCaseVide(uint64_t plateau, int *r, int *c); +void placeAutoPiecerec(uint64_t plateau, uint64_t* catalogue, uint16_t pieces_utilisees, int* nb_solutions, int piece_forcee); + +#endif -- GitLab