summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ai/ai.cc
diff options
context:
space:
mode:
authordufourj2005-05-05 18:33:14 +0000
committerdufourj2005-05-05 18:33:14 +0000
commit82c3720ff7124596b2fdd2d214b6b253ebed83f7 (patch)
tree3be71836cbf823d27b0b864f747924c489bcddb8 /2005/i/robert/src/ai/ai.cc
parent2ddd21b024ff07b71012f5643a692add13f35024 (diff)
Implémentation des algos
Diffstat (limited to '2005/i/robert/src/ai/ai.cc')
-rw-r--r--2005/i/robert/src/ai/ai.cc60
1 files changed, 60 insertions, 0 deletions
diff --git a/2005/i/robert/src/ai/ai.cc b/2005/i/robert/src/ai/ai.cc
index 573a59e..847fe76 100644
--- a/2005/i/robert/src/ai/ai.cc
+++ b/2005/i/robert/src/ai/ai.cc
@@ -139,6 +139,63 @@ void Ai::run(void)
std::cout << "On a fini" << std::endl;
}
+// Balistique non fiable.
+void
+Ai::initBalNonFiable (void)
+{
+ // Lancement du placement pour les matchs
+ initMatch ();
+ // Protection des quilles devant le pont
+ protectQuillePont ();
+}
+
+// Balistique fiable.
+void
+Ai::initBalFiable (void)
+{
+ // Lancement du placement pour les matchs
+ initMatch ();
+ // Goto pour avance puis tourner de - PI/2
+ // Algo de recherche de quille sur ligne du fond
+}
+
+// Va du point de départ au pont pour protéger les quilles.
+void
+Ai::protectQuillePont (void)
+{
+ // On avance pour pouvoir aller vers la boule parallèlement au socle
+ std::cout << "On avance de 540mm" << std::endl;
+ basic(540); // 600 - 60
+ // On se place derrière les quilles en arrière
+ std::cout << "GoTo 870,-675 -> Pi" << std::endl;
+ goTo(1225, -1125, M_PI);
+ // On change la vitesse max pour reculer
+ motor_.setMaxSpeed (128, -1);
+ // Taper la boule
+ std::cout << "On recule lentement de 200mm" << std::endl;
+ basic(-200);
+ // On restaure la vitesse
+ motor_.setMaxSpeed (64, -1);
+ // On attend un peu pour protéger
+ temporisation (15000); // XXX A changer
+ // XXX à finir
+ // On se barre des quilles
+ basic (200);
+ // On retourne à l'origine
+ goTo (450, -300, M_PI);
+ // On avance légèrement
+ goTo (250, motor_.getY (), -M_PI / 2);
+ // XXX Faire un fuck the wall en Y
+ // On met la caméra
+ // On avance d'une valeur fixe si on a rien
+ // Si on a quelque chose, on y va
+ // On remonte, rotation de 0 puis M_PI / 2
+ // On pose, on recule de 100, on baisse l'ascenceur
+ // On pivote à - M_PI / 2
+ // On réitère si on est pas au bout 1800
+ // On recommence l'algo dans l'autre sens
+}
+
/// Attend.
void Ai::wait (int t)
{
@@ -313,4 +370,7 @@ void Ai::initMatch (void)
// On lance le timer de début de match
std::cout << "Lancmeent du match" << std::endl;
Timer::startRound();
+ // On temporise pour laisser Taz sortir
+ std::cout << "Attente du 15 secondes" << std::endl;
+ temporisation(15000);
}