#include "Strategie.h" #include "Geometrie.h" enum etat_action_t Strategie_super_star(uint32_t step_ms){ static enum{ SSS_INIT, SSS_AVANCE, SSS_DANCE } etat_sss = SSS_INIT; static struct trajectoire_t trajectoire_composee; static struct trajectoire_t trajectoire1, trajectoire2, trajectoire3; switch(etat_sss){ case SSS_INIT: Localisation_set(45, 1895, 0); Trajectoire_droite(&trajectoire1, 45, 1895, 1135, 1895, 0, 0); Trajectoire_circulaire(&trajectoire2, 1135, 1645, M_PI/2, 0, 250, 0, -M_PI/2); Trajectoire_droite(&trajectoire3, 1385, 1645, 1385, 1580, 0, 0); Trajectoire_composee_init(&trajectoire_composee); Trajectoire_composee_ajout(&trajectoire_composee, &trajectoire1); Trajectoire_composee_ajout(&trajectoire_composee, &trajectoire2); Trajectoire_composee_ajout(&trajectoire_composee, &trajectoire3); etat_sss = SSS_AVANCE; break; case SSS_AVANCE: Trajet_config(TRAJECT_CONFIG_RAPIDE); if(Strategie_parcourir_trajet(trajectoire_composee, step_ms, EVITEMENT_SANS_EVITEMENT) == ACTION_TERMINEE){ etat_sss = SSS_DANCE; } break; case SSS_DANCE: return ACTION_TERMINEE; } return ACTION_EN_COURS; }