Commit 53e48946 authored by vautrin33u's avatar vautrin33u
Browse files

Changement de types pour prévoir le déplacement des ingrédients, des...

Changement de types pour prévoir le déplacement des ingrédients, des déplacements et des conditions pour avoir des points
parent b3729235
This diff is collapsed.
......@@ -11,7 +11,7 @@
//enum état pour décrire la direction du sprite
enum etat {BAS, HAUT, DROITE, GAUCHE, MOBILE, FIXE};
enum cuisson {FRIGO, FRAIS, SALE, PROPRE, CUIT};
enum cuisson {FRIGO, FRAIS, SALE, PROPRE, CUIT, JETE};
/**
* \brief Largeur de l'écran
......
......@@ -129,19 +129,17 @@ void apply_graphics (SDL_Renderer *renderer, textures_t *textures, world_t *worl
}else{
zone_score = create_SDL_rect(90, 555, 100, 40);
}
//Couleur du message
//Couleur du texte
SDL_Color color = { 255, 255, 0, 0 };
SDL_Texture* message;
SDL_Texture* points;
//affichage en deux partie de score et de la valeur du score
message = charger_texte("Score : ", renderer, textures->police, color);
char score_j[10];
sprintf(score_j, " %d", get_score(&world->etat_stocks)); //Nécessaire pour afficher le score -- limite le nombre de points max!
points = charger_texte(score_j, renderer, textures->police, color);
render_texte(renderer, zone_message, message);
render_texte(renderer, zone_score, points);
//get_score(&world->etat_stocks);
}
}
......
......@@ -41,27 +41,22 @@ void init_data(world_t * world){
init_stocks(&world->etat_stocks, world);
}
void init_plat (plat_t* plat, char nom, int x, int y, int w, int h, int v, int state){
init_sprite(&plat->ingredient, nom, x, y, w, h, v, state);
set_cuisson(plat, FRIGO);
void init_ingre (ingredient_t* ingre, char nom, int x, int y, int w, int h, int v, int state){
init_sprite(&ingre->element, nom, x, y, w, h, v, state);
set_cuisson(ingre, FRIGO);
}
void init_stocks(stock_t* stocks, world_t *world){
//Initialisation des stocks et du tableau d'état des menus
stocks->score = 1000;
for (int y=0; y<NB_PLAT; y++){
for (int x=0; x<NB_INGREDIENT; x++){
stocks->plats[y][x] = 0;
}
}
stocks->score = 0;
SDL_Rect temp = get_rect(&world->frigo);
for (int i=0; i<QTE_STOCK; i++){
init_plat(&stocks->stock_tomate[i], NOM_TOMATE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_plat(&stocks->stock_pain[i], NOM_PAIN, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_plat(&stocks->stock_steak[i], NOM_STEAK, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_plat(&stocks->stock_salade[i], NOM_SALADE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_plat(&stocks->stock_fromage[i], NOM_SALADE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_plat(&stocks->stock_cornichon[i], NOM_CORNICHON, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_tomate[i], NOM_TOMATE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_pain[i], NOM_PAIN, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_steak[i], NOM_STEAK, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_salade[i], NOM_SALADE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_fromage[i], NOM_SALADE, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
init_ingre(&stocks->stock_cornichon[i], NOM_CORNICHON, temp.x, temp.y, PLAT_SIZE, PLAT_SIZE, 0, BAS);
}
}
......@@ -152,16 +147,16 @@ SDL_Rect get_rect (sprite_t *sprite){
return sprite->rect;
}
sprite_t* get_sprite (plat_t *plat){
return &plat->ingredient;
sprite_t* get_sprite (ingredient_t *ingre){
return &ingre->element;
}
int get_cuisson (plat_t *plat){
return plat->cuisson;
int get_cuisson (ingredient_t *ingre){
return ingre->cuisson;
}
void set_cuisson(plat_t *plat, int cuisson){
plat->cuisson = cuisson;
void set_cuisson(ingredient_t *ingre, int cuisson){
ingre->cuisson = cuisson;
}
void modif_position (sprite_t *sprite, int x_move, int y_move){
......@@ -290,7 +285,7 @@ void limites_interne (world_t* world){
}
void reset_sprite_on_map (sprite_t *sprite, world_t *world){ // TODO: A retravailler pour les plats et joueur
void reset_sprite_on_map (sprite_t *sprite, world_t *world){ // TODO: A retravailler pour les ingres et joueur
//On efface la position du sprite sur map
for (int i=sprite->rect.y; i < sprite->rect.y + sprite->rect.h ; i++){
for (int j = sprite->rect.x ; j < sprite->rect.x + sprite->rect.w ; j++){
......@@ -301,7 +296,7 @@ void reset_sprite_on_map (sprite_t *sprite, world_t *world){ // TODO: A retravai
}
}
void place_sprite_on_map (sprite_t *sprite, world_t *world){ //TODO: A retravailler pour les plats (sur meubles) et joueur
void place_sprite_on_map (sprite_t *sprite, world_t *world){ //TODO: A retravailler pour les ingres (sur meubles) et joueur
//on écrit la position du sprite sur la map
for (int i=sprite->rect.y; i < sprite->rect.y + sprite->rect.h ; i++){
for (int j = sprite->rect.x ; j < sprite->rect.x + sprite->rect.w ; j++){
......
......@@ -39,32 +39,44 @@ typedef struct sprite_s sprite_t;
/**
* @brief Représentation du plat
* @brief Représentation des ingrédients
*/
struct plat_s{
sprite_t ingredient; /*!< sprite d'un ingrédient*/
struct ingredient_s{
sprite_t element; /*!< sprite d'un element*/
int cuisson; /*!< Etat de la cuisson*/
};
/**
* \brief Type qui correspond au plat
* \brief Type qui correspond aux ingredients
*/
typedef struct plat_s plat_t;
typedef struct ingredient_s ingredient_t;
/**
* \brief Representation du menu et des stocks
* @brief Représentation du menu (liste chainée)
*
*/
struct menu_s{
ingredient_t recette[5]; /*!< tableau d'ingrédients dans un plat*/
menu_t *suivant; /*!< pointeur vers recette suivante*/
};
/**
* \brief Type correspondant à la demande à remplir
*/
typedef struct menu_s menu_t;
/**
* \brief Representation des stocks et du score
*/
struct stock_s{
plat_t stock_tomate[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
plat_t stock_pain[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
plat_t stock_steak[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
plat_t stock_salade[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
plat_t stock_fromage[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
plat_t stock_cornichon[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
int** plats[NB_PLAT][NB_INGREDIENT]; /*!< tableau 2D représentant l'état de préparation des plats*/
ingredient_t stock_tomate[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
ingredient_t stock_pain[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
ingredient_t stock_steak[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
ingredient_t stock_salade[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
ingredient_t stock_fromage[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
ingredient_t stock_cornichon[QTE_STOCK]; /*!< tableau des sprites du stock de tomates*/
int score; /*!< Score actuel*/
};
/**
* \brief Type qui correspond au menu et aux stocks
*/
......@@ -79,9 +91,8 @@ struct world_s{
sprite_t envoi; /*< Sprite de la zone d'envoi */
sprite_t poubelle; /*< Sprite de la poubelle */
sprite_t comptoire[NB_COMPT_1]; /*< Tableau de sprite de comptoir */
sprite_t plat[NB_PLAT]; /*!< Tableau des sprites type de plats */
sprite_t tomates[10] ;
stock_t etat_stocks; /*!< Structure gérant les stocks et la complétion des repas*/
stock_t etat_stocks; /*!< Structure gérant les stocks et le score*/
int compteur_plats; /*!< Nombre d'ennemis étant sorti de l'écran */
int attente; /*!< Compte le nombre de tours avant la fin de la partie*/
char** map; /*!< tableau de caractère correspondant à l'état de la map actuel */
......@@ -106,10 +117,10 @@ typedef struct world_s world_t;
void init_sprite(sprite_t *sprite, char nom, int x, int y, int w, int h, int v, int state);
/**
* @brief Initialise un plat et son sprite
* @brief Initialise un ingrédient et son sprite
*
* @param plat pointeur vers le sprite d'un ingrédient à initialiser
* @param nom Caractère représentant le plat sur la map
* @param ingre pointeur vers le sprite d'un ingrédient à initialiser
* @param nom Caractère représentant l'ingredient sur la map
* @param x Localisation sur l'axe des abscisses
* @param y Localisation sur l'axe des ordonnées
* @param w Largeur
......@@ -117,7 +128,7 @@ void init_sprite(sprite_t *sprite, char nom, int x, int y, int w, int h, int v,
* @param v Vitesse
* @param state Etat du sprite
*/
void init_plat (plat_t* plat, char nom, int x, int y, int w, int h, int v, int state);
void init_ingre (ingredient_t* ingre, char nom, int x, int y, int w, int h, int v, int state);
/**
* @brief Initialise les stocks et l'état de complétion des burgers
......@@ -166,28 +177,28 @@ void build_sprites_tab (sprite_t *sprite, char nomSprite, int largeur, int haute
SDL_Rect get_rect (sprite_t *sprite);
/**
* @brief Retourne un sprite dans une structure plat
* @brief Retourne un sprite dans une structure ingre
*
* @param plat
* @param ingre
* @return sprite_t*
*/
sprite_t* get_sprite (plat_t *plat);
sprite_t* get_sprite (ingredient_t *ingre);
/**
* @brief récupère la valeur de la cuisson
*
* @param plat
* @param ingre
* @return int état de la cuisson
*/
int get_cuisson (plat_t *plat);
int get_cuisson (ingredient_t *ingre);
/**
* @brief Modifie la valeur de la cuisson
*
* @param plat
* @param ingre
* @param cuisson
*/
void set_cuisson(plat_t *plat, int cuisson);
void set_cuisson(ingredient_t *ingre, int cuisson);
/**
* @brief Ajoute à la position du sprite les valeurs indiquées
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment