Projet

Général

Profil

Support #11498 » Structure_du_jeu.h

Anonyme, 13/12/2019 15:34

 
#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];
(1-1/2)