Match 5
This commit is contained in:
parent
060fb3414a
commit
0e45582a6b
8
Score.c
8
Score.c
@ -7,6 +7,7 @@
|
|||||||
uint32_t Score_nb_cerises=0;
|
uint32_t Score_nb_cerises=0;
|
||||||
uint32_t Score_nb_points=0;
|
uint32_t Score_nb_points=0;
|
||||||
uint32_t Score_funny_action=0;
|
uint32_t Score_funny_action=0;
|
||||||
|
uint32_t Score_gateau=0;
|
||||||
uint32_t Score_pieds_dans_plat=0;
|
uint32_t Score_pieds_dans_plat=0;
|
||||||
|
|
||||||
void Score_recalcule(){
|
void Score_recalcule(){
|
||||||
@ -16,6 +17,7 @@ void Score_recalcule(){
|
|||||||
}
|
}
|
||||||
Score_nb_points += Score_funny_action;
|
Score_nb_points += Score_funny_action;
|
||||||
Score_nb_points += Score_pieds_dans_plat;
|
Score_nb_points += Score_pieds_dans_plat;
|
||||||
|
Score_nb_points += Score_gateau;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,6 +26,12 @@ void Score_actualise(){
|
|||||||
i2c_annexe_envoie_score(Score_nb_points);
|
i2c_annexe_envoie_score(Score_nb_points);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Score_ajout_gateau(uint32_t nb_gateau){
|
||||||
|
Score_gateau += nb_gateau;
|
||||||
|
Score_actualise();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Score_set_funny_action(){
|
void Score_set_funny_action(){
|
||||||
Score_funny_action = 5;
|
Score_funny_action = 5;
|
||||||
Score_actualise();
|
Score_actualise();
|
||||||
|
3
Score.h
3
Score.h
@ -2,4 +2,5 @@
|
|||||||
|
|
||||||
void Score_set_funny_action();
|
void Score_set_funny_action();
|
||||||
void Score_set_pieds_dans_plat();
|
void Score_set_pieds_dans_plat();
|
||||||
void Score_ajout_cerise(uint32_t nb_cerises);
|
void Score_ajout_cerise(uint32_t nb_cerises);
|
||||||
|
void Score_ajout_gateau(uint32_t nb_gateau);
|
@ -97,7 +97,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms, uint32_t temps_ms){
|
|||||||
if(couleur == COULEUR_BLEU){
|
if(couleur == COULEUR_BLEU){
|
||||||
Localisation_set(225., 3000 - PETIT_RAYON_ROBOT_MM, (120.+CORR_ANGLE_DEPART_DEGREE) * DEGRE_EN_RADIAN);
|
Localisation_set(225., 3000 - PETIT_RAYON_ROBOT_MM, (120.+CORR_ANGLE_DEPART_DEGREE) * DEGRE_EN_RADIAN);
|
||||||
struct objectif_t objectif_1 = { .priorite = 10, .etat = FAIT, .cible = CERISE_BAS};
|
struct objectif_t objectif_1 = { .priorite = 10, .etat = FAIT, .cible = CERISE_BAS};
|
||||||
struct objectif_t objectif_2 = { .priorite = 1, .etat = FAIT, .cible = CERISE_HAUT};
|
struct objectif_t objectif_2 = { .priorite = 1, .etat = A_FAIRE, .cible = CERISE_HAUT};
|
||||||
struct objectif_t objectif_3 = { .priorite = 2, .etat = A_FAIRE, .cible = CERISE_GAUCHE};
|
struct objectif_t objectif_3 = { .priorite = 2, .etat = A_FAIRE, .cible = CERISE_GAUCHE};
|
||||||
struct objectif_t objectif_4 = { .priorite = 5, .etat = FAIT, .cible = CERISE_DROITE};
|
struct objectif_t objectif_4 = { .priorite = 5, .etat = FAIT, .cible = CERISE_DROITE};
|
||||||
objectifs[0]= objectif_1;
|
objectifs[0]= objectif_1;
|
||||||
@ -107,7 +107,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms, uint32_t temps_ms){
|
|||||||
}else{
|
}else{
|
||||||
Localisation_set(2000 - 225., 3000 - PETIT_RAYON_ROBOT_MM, (120.+CORR_ANGLE_DEPART_DEGREE) * DEGRE_EN_RADIAN);
|
Localisation_set(2000 - 225., 3000 - PETIT_RAYON_ROBOT_MM, (120.+CORR_ANGLE_DEPART_DEGREE) * DEGRE_EN_RADIAN);
|
||||||
struct objectif_t objectif_1 = { .priorite = 10, .etat = FAIT, .cible = CERISE_BAS};
|
struct objectif_t objectif_1 = { .priorite = 10, .etat = FAIT, .cible = CERISE_BAS};
|
||||||
struct objectif_t objectif_2 = { .priorite = 1, .etat = FAIT, .cible = CERISE_HAUT};
|
struct objectif_t objectif_2 = { .priorite = 1, .etat = A_FAIRE, .cible = CERISE_HAUT};
|
||||||
struct objectif_t objectif_3 = { .priorite = 2, .etat = A_FAIRE
|
struct objectif_t objectif_3 = { .priorite = 2, .etat = A_FAIRE
|
||||||
, .cible = CERISE_DROITE};
|
, .cible = CERISE_DROITE};
|
||||||
struct objectif_t objectif_4 = { .priorite = 5, .etat = FAIT, .cible = CERISE_GAUCHE};
|
struct objectif_t objectif_4 = { .priorite = 5, .etat = FAIT, .cible = CERISE_GAUCHE};
|
||||||
@ -201,6 +201,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms, uint32_t temps_ms){
|
|||||||
if(couleur == COULEUR_BLEU){
|
if(couleur == COULEUR_BLEU){
|
||||||
if(Strategie_aller_cerises_laterales_proches(couleur, step_ms)== ACTION_TERMINEE){
|
if(Strategie_aller_cerises_laterales_proches(couleur, step_ms)== ACTION_TERMINEE){
|
||||||
etat_strategie = ATTRAPER_CERISE_GAUCHE;
|
etat_strategie = ATTRAPER_CERISE_GAUCHE;
|
||||||
|
Score_ajout_gateau(3);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(Strategie_aller_cerises_laterales_opposees(couleur, step_ms)== ACTION_TERMINEE){
|
if(Strategie_aller_cerises_laterales_opposees(couleur, step_ms)== ACTION_TERMINEE){
|
||||||
@ -225,6 +226,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms, uint32_t temps_ms){
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(Strategie_aller_cerises_laterales_proches(couleur, step_ms)== ACTION_TERMINEE){
|
if(Strategie_aller_cerises_laterales_proches(couleur, step_ms)== ACTION_TERMINEE){
|
||||||
|
Score_ajout_gateau(3);
|
||||||
etat_strategie = ATTRAPER_CERISE_DROITE;
|
etat_strategie = ATTRAPER_CERISE_DROITE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -286,6 +288,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms, uint32_t temps_ms){
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RETOUR_MAISON:
|
case RETOUR_MAISON:
|
||||||
|
i2c_annexe_plie_bras();
|
||||||
if(Strategie_pieds_dans_plat(couleur, step_ms) == ACTION_TERMINEE){
|
if(Strategie_pieds_dans_plat(couleur, step_ms) == ACTION_TERMINEE){
|
||||||
// Si le robot est dans la zone du panier, jeter les cerises s'il en a
|
// Si le robot est dans la zone du panier, jeter les cerises s'il en a
|
||||||
if(Strategie_get_cerise_dans_robot() > 0 && Robot_est_dans_zone_depose_panier(couleur)){
|
if(Strategie_get_cerise_dans_robot() > 0 && Robot_est_dans_zone_depose_panier(couleur)){
|
||||||
|
@ -23,7 +23,7 @@ enum etat_action_t Gateau_pousse_proche(enum couleur_t couleur, uint32_t step_ms
|
|||||||
angle_fin = 90. * DEGRE_EN_RADIAN;
|
angle_fin = 90. * DEGRE_EN_RADIAN;
|
||||||
point_x = 310;
|
point_x = 310;
|
||||||
}else{
|
}else{
|
||||||
angle_fin = 195. * DEGRE_EN_RADIAN;
|
angle_fin = 205. * DEGRE_EN_RADIAN;
|
||||||
point_x = 1700;
|
point_x = 1700;
|
||||||
}
|
}
|
||||||
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
||||||
@ -40,16 +40,16 @@ enum etat_action_t Gateau_pousse_proche(enum couleur_t couleur, uint32_t step_ms
|
|||||||
|
|
||||||
case ALLER_2:
|
case ALLER_2:
|
||||||
if(couleur == COULEUR_BLEU){
|
if(couleur == COULEUR_BLEU){
|
||||||
angle_fin = 180. * DEGRE_EN_RADIAN;
|
angle_fin = 90. * DEGRE_EN_RADIAN;
|
||||||
point_x = 225;
|
point_x = 310;
|
||||||
}else{
|
}else{
|
||||||
angle_fin = 180. * DEGRE_EN_RADIAN;
|
angle_fin = 205. * DEGRE_EN_RADIAN;
|
||||||
point_x = 1775;
|
point_x = 1700;
|
||||||
}
|
}
|
||||||
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
||||||
|
|
||||||
Trajet_config(250, 250);
|
Trajet_config(250, 250);
|
||||||
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, point_x, 3000 - 1650,
|
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, point_x, 3000 - 1700,
|
||||||
Localisation_get().angle_radian, angle_fin);
|
Localisation_get().angle_radian, angle_fin);
|
||||||
|
|
||||||
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
||||||
@ -69,7 +69,7 @@ enum etat_action_t Gateau_pousse_proche(enum couleur_t couleur, uint32_t step_ms
|
|||||||
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, angle_fin);
|
||||||
|
|
||||||
Trajet_config(250, 250);
|
Trajet_config(250, 250);
|
||||||
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, point_x, 3000 - 1500,
|
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, point_x, 3000 - 1600,
|
||||||
Localisation_get().angle_radian, angle_fin);
|
Localisation_get().angle_radian, angle_fin);
|
||||||
|
|
||||||
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
||||||
|
@ -43,7 +43,7 @@ enum etat_action_t cerises_attraper_cerises_droite(uint32_t step_ms){
|
|||||||
}etat_attrappe_cerises_droite = ATTRAPE_CERISE_DEMI_BAS;
|
}etat_attrappe_cerises_droite = ATTRAPE_CERISE_DEMI_BAS;
|
||||||
struct trajectoire_t trajectoire;
|
struct trajectoire_t trajectoire;
|
||||||
float angle_fin;
|
float angle_fin;
|
||||||
float pos_recal_x_mm = PETIT_RAYON_ROBOT_MM + 30;
|
float pos_recal_x_mm = 2000 - (PETIT_RAYON_ROBOT_MM + 30);
|
||||||
|
|
||||||
switch (etat_attrappe_cerises_droite){
|
switch (etat_attrappe_cerises_droite){
|
||||||
case ATTRAPE_CERISE_DEMI_BAS:
|
case ATTRAPE_CERISE_DEMI_BAS:
|
||||||
@ -56,7 +56,7 @@ enum etat_action_t cerises_attraper_cerises_droite(uint32_t step_ms){
|
|||||||
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, 30 * DEGRE_EN_RADIAN);
|
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, 30 * DEGRE_EN_RADIAN);
|
||||||
|
|
||||||
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
|
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
|
||||||
2000 - 180, 1500 - 75, Localisation_get().angle_radian, angle_fin);
|
2000 - 180, 3000 - 1600, Localisation_get().angle_radian, angle_fin);
|
||||||
|
|
||||||
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
||||||
etat_attrappe_cerises_droite = ATTRAPE_CERISE_DEMI_HAUT;
|
etat_attrappe_cerises_droite = ATTRAPE_CERISE_DEMI_HAUT;
|
||||||
|
Loading…
Reference in New Issue
Block a user