58 lines
1.6 KiB
C
58 lines
1.6 KiB
C
#include "Strategie.h"
|
|
#include "Geometrie.h"
|
|
|
|
|
|
|
|
enum etat_action_t Strategie_super_star(uint32_t step_ms){
|
|
static enum{
|
|
SSS_TEST_TOURNE,
|
|
SSS_INIT,
|
|
SSS_AVANCE_1,
|
|
SSS_TOURNE,
|
|
SSS_AVANCE_2,
|
|
SSS_DANCE
|
|
} etat_sss = SSS_INIT;
|
|
struct trajectoire_t trajectoire;
|
|
|
|
switch(etat_sss){
|
|
case SSS_TEST_TOURNE:
|
|
Localisation_set(1135, 1895, 0);
|
|
etat_sss = SSS_TOURNE;
|
|
break;
|
|
case SSS_INIT:
|
|
Localisation_set(45, 1895, 0);
|
|
etat_sss = SSS_AVANCE_1;
|
|
break;
|
|
|
|
case SSS_AVANCE_1:
|
|
Trajet_config(TRAJECT_CONFIG_STD);
|
|
Trajectoire_droite(&trajectoire, 45, 1895, 1135, 1895, 0, 0);
|
|
if(Strategie_parcourir_trajet(trajectoire, step_ms, EVITEMENT_SANS_EVITEMENT) == ACTION_TERMINEE){
|
|
etat_sss = SSS_TOURNE;
|
|
}
|
|
break;
|
|
|
|
case SSS_TOURNE:
|
|
//Trajet_config(100, 100);
|
|
Trajet_config(TRAJECT_CONFIG_STD);
|
|
Trajectoire_circulaire(&trajectoire, 1135, 1645, M_PI/2, 0, 250, 0, -M_PI/2);
|
|
if(Strategie_parcourir_trajet(trajectoire, step_ms, EVITEMENT_SANS_EVITEMENT) == ACTION_TERMINEE){
|
|
etat_sss = SSS_AVANCE_2;
|
|
}
|
|
break;
|
|
|
|
case SSS_AVANCE_2:
|
|
Trajet_config(TRAJECT_CONFIG_STD);
|
|
Trajectoire_droite(&trajectoire, 1385, 1645, 1385, 1580, 0, 0);
|
|
if(Strategie_parcourir_trajet(trajectoire, step_ms, EVITEMENT_SANS_EVITEMENT) == ACTION_TERMINEE){
|
|
etat_sss = SSS_DANCE;
|
|
}
|
|
break;
|
|
|
|
case SSS_DANCE:
|
|
return ACTION_TERMINEE;
|
|
}
|
|
return ACTION_EN_COURS;
|
|
|
|
}
|