|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
|
|
enum{
|
|
NON,OUI
|
|
};
|
|
enum{
|
|
R_AUCUNE, R_HAUT_GAUCHE, R_HAUT_DROITE, R_DROITE_GAUCHE, R_DROITE_DROITE, R_GAUCHE_GAUCHE, R_GAUCHE_DROITE
|
|
};
|
|
enum{
|
|
ID_CHEVALIER, ID_PRINCESSE, ID_CUBE, ID_CUBE_AVEC_APPENDICE_1, ID_CUBE_AVEC_APPENDICE_2, ID_TOUR_1, ID_TOUR_2, ID_PETIT_ESCALIER_1, ID_PETIT_ESCALIER_2, ID_GRAND_ESCALIER
|
|
};
|
|
|
|
enum{
|
|
CASE_VIDE, CASE_PLEINE, CASE_BAS_GAUCHE, CASE_BAS_DROITE, CASE_HAUT_GAUCHE, CASE_HAUT_DROITE
|
|
};
|
|
|
|
// Pour remplir la matrice
|
|
enum{
|
|
M_VIDE, M_CHEVALIER, M_PRINCESSE, M_CUBE, M_CUBE_AVEC_APPENDICE_1,M_CUBE_AVEC_APPENDICE_2 , M_TOUR_1, M_TOUR_2, M_PETIT_ESCALIER_1_PLEIN, M_PETIT_ESCALIER_1_HAUT_GAUCHE, M_PETIT_ESCALIER_1_HAUT_DROITE, M_PETIT_ESCALIER_1_GAUCHE_GAUCHE, M_PETIT_ESCALIER_1_GAUCHE_DROITE, M_PETIT_ESCALIER_1_DROITE_GAUCHE, M_PETIT_ESCALIER_1_DROITE_DROITE, M_PETIT_ESCALIER_2_PLEIN, M_PETIT_ESCALIER_2_HAUT_GAUCHE, M_PETIT_ESCALIER_2_HAUT_DROITE, M_PETIT_ESCALIER_2_GAUCHE_GAUCHE, M_PETIT_ESCALIER_2_GAUCHE_DROITE, M_PETIT_ESCALIER_2_DROITE_GAUCHE, M_PETIT_ESCALIER_2_DROITE_DROITE, M_GRAND_ESCALIER_PLEIN,M_GRAND_ESCALIER_HAUT_GAUCHE, M_GRAND_ESCALIER_HAUT_DROITE, M_GRAND_ESCALIER_GAUCHE_GAUCHE, M_GRAND_ESCALIER_GAUCHE_DROITE, M_GRAND_ESCALIER_DROITE_GAUCHE, M_GRAND_ESCALIER_DROITE_DROITE
|
|
};
|
|
|
|
enum{
|
|
ETAT_JEU_CHOIX_PIECE, ETAT_JEU_EN_JEU, ETAT_JEU_REINITIALISATION, ETAT_JEU_CHARGER_FICHIER, ETAT_JEU_GENERER_FICHIER
|
|
};
|
|
|
|
enum{
|
|
ENLEVER_PIECE, AJOUTER_PIECE
|
|
};
|
|
|
|
typedef struct{
|
|
int choix_piece; // Permet de choisir la piece
|
|
int choix_rotation; // Permet de choisir la rotation de la piece
|
|
int choix_position_colonne; // Permet de choisir la position de la colonne
|
|
int choix_mode_de_jeu; // Permet de choisir le mode de jeu dans lequel on est
|
|
int choix_enlever_ou_ajouter_piece; // Permet de choisir si on enleve ou on ajoute une pi?ce
|
|
}t_action;
|
|
|
|
typedef struct{
|
|
int id; // Id de la piece
|
|
char nom[20]; // Nom de la piece
|
|
int rotation; // La rotation actuelle de la piece
|
|
int rotation_possible; // La piece peux tourner
|
|
int dans_le_jeu; // La piece est dans le jeu
|
|
int piece_de_depart; // La piece est une piece de depart
|
|
int colonne; // Le numero de la colonne de la piece
|
|
int ligne; // La ligne de la piece
|
|
int largeur; // La largeur de la piece
|
|
int hauteur; // La hauteur de la piece
|
|
int piece_solution; // La piece est solution ou non
|
|
int priorite_solution; // Donne l'ordre dans le quel on peut poser la piece 1 est la priorit? la plus elev?e
|
|
}t_piece;
|
|
|
|
typedef struct{
|
|
int niveau; // NIVEAU CHARGE
|
|
int matrice_etat[6][6]; // MATRICE UTILISE POUR AFFICHER L'ETAT DU JEU
|
|
t_piece piece[10]; // TOUTES LES PIECES
|
|
t_action action; // ACTION CHOISIE POUR CHANGER L'ETAT DU JEU
|
|
int etat_jeu; // VARIABLE QUI SERT A : placer les pieces de depart / placer les pieces jouable / generer un fichier xml /
|
|
// charger un fichier xml
|
|
}t_jeu;
|
|
|
|
t_jeu jeu;
|
|
t_jeu jeu_solution[48];
|