void affiche_appel(n_appel *n) { char *fct = "appel"; affiche_balise_ouvrante(fct, trace_abs); affiche_texte( n->fonction, trace_abs); affiche_l_exp(n->args); affiche_balise_fermante(fct, trace_abs); }
void affiche_foncDec(n_dec *n) { char *fct = "foncDec"; affiche_balise_ouvrante(fct, trace_abs); affiche_texte( n->nom, trace_abs ); affiche_l_dec(n->u.foncDec_.param); affiche_l_dec(n->u.foncDec_.variables); affiche_instr(n->u.foncDec_.corps); affiche_balise_fermante(fct, trace_abs); }
/* Affiche les informations utiles sur l'interface utilisateur (bandeau en bas de l'écran) */ void texte(SDL_Renderer *s, map_t * m) { SDL_Rect rect; int i,j; for(i= NOM_CASES_VISIBLES_HAUTEUR ; i<NOM_CASES_VISIBLES_HAUTEUR + (HAUTEUR_INTERFACE/SIZE)+2; i++) { for(j=0; j<NOM_CASES_VISIBLES_LARGEUR; j++) { // Crée un rectangle d'une certaine taille : une tuile qu'on va afficher sur la carte rect.w=SIZE; rect.h=SIZE; // Position de la tuile sur la carte rect.x=j*SIZE; rect.y=i*SIZE; // On affiche la tuile sur la carte, en indiquant le sprite à utiliser SDL_RenderCopy(s, tile[BROUILLARD_32], NULL, &rect); } } char txt[100]; // SCORE DES ÉQUIPES sprintf(txt, "Score : %d VS %d", m->score_equipe_joueur, m->score_equipe_adverse); affiche_texte(s, m, 0, 0, txt, WHITE); // Bonus puissance if(m->tanks[m->num_tank_joueur].bonus == BONUS_PUISSANCE) { sprintf(txt, "Bonus tir : + %d", m->tanks[m->num_tank_joueur].valeur_bonus); affiche_texte(s, m, 0, 1, txt, GREEN); } else { affiche_texte(s, m, 0, 1, "Bonus tir : 0", WHITE); } // POINTS DE VIE int vie =m->tanks[m->num_tank_joueur].point_vie_tank; int color; if(vie > 75) { color=GREEN; } else if(vie > 25) { color=ORANGE; } else { color=RED; } sprintf(txt, "Vie : %d", m->tanks[m->num_tank_joueur].point_vie_tank); affiche_texte(s, m, 0, 2, txt, color); // SCORE JOUEUR sprintf(txt, "Score perso : %d", m->tanks[m->num_tank_joueur].score); affiche_texte(s, m, 1, 0, txt, WHITE); // Bonus Blindage if(m->tanks[m->num_tank_joueur].bonus == BONUS_BLINDAGE) { sprintf(txt, "Bonus blindage : + %d", m->tanks[m->num_tank_joueur].valeur_bonus); affiche_texte(s, m, 1, 1, txt, GREEN); } else { affiche_texte(s, m, 1, 1, "Bonus blindage : 0", WHITE); } // NOMBRE TANKS RESTANTS sprintf(txt, "%d allies / %d ennemis", m->nb_tank_allies_restants, m->nb_tank_advserses_restants); affiche_texte(s, m, 1, 2, txt, WHITE); }
/*-------------------------------------------------------------------------*/ void affiche_opExp(n_exp *n) { char *fct = "opExp"; affiche_balise_ouvrante(fct, trace_abs); if(n->u.opExp_.op == plus) affiche_texte("plus", trace_abs); else if(n->u.opExp_.op == moins) affiche_texte("moins", trace_abs); else if(n->u.opExp_.op == fois) affiche_texte("fois", trace_abs); else if(n->u.opExp_.op == divise) affiche_texte("divise", trace_abs); else if(n->u.opExp_.op == egal) affiche_texte("egal", trace_abs); else if(n->u.opExp_.op == diff) affiche_texte("diff", trace_abs); else if(n->u.opExp_.op == inf) affiche_texte("inf", trace_abs); else if(n->u.opExp_.op == infeg) affiche_texte("infeg", trace_abs); else if(n->u.opExp_.op == ou) affiche_texte("ou", trace_abs); else if(n->u.opExp_.op == et) affiche_texte("et", trace_abs); else if(n->u.opExp_.op == non) affiche_texte("non", trace_abs); if( n->u.opExp_.op1 != NULL ) { affiche_exp(n->u.opExp_.op1); } if( n->u.opExp_.op2 != NULL ) { affiche_exp(n->u.opExp_.op2); } affiche_balise_fermante(fct, trace_abs); }