====== Classe IaBase ====== ===== Explications ===== La classe IaBase sert de base à l'IA. Concrètement, la classe se charge d'effectuer l'ensemble des contrôles nécessaires pour que l'IA puisse évoluer correctement puis elle entre dans une boucle principale. Cette boucle se charge d'appeler les méthodes adéquates pour suivre l'état du robot (qui a une boucle dédiée appelée par la boucle principale), l'état du match et l'état des différents organes du robot (détection d'un adversaire, etc...). Donc cette classe sert à poser l'environnement minimal de l'IA afin qu'elle puisse fonctionner. ===== Propriétés ===== * team : désigne la team qu’on est (passé en paramètre) * init_pos : dico des positions initiales des 4 robots (passé en paramètre) * enemy1, enemy2 : objet de type Robot * ng : graph de navigation (passé au cstr de Robot pour nos robots) * bigrobot : objet de type Robot (notre big) * minirobot : idem que bigrobot * asserv, visio, actionneurs : variables temporaires pour créer les organes du robot * hokuyo : client zerobot * gamestate : état du jeu (construit via Gamestate) * skip_recalage : ?, param * autostart : param, désigne le start auto * match_timeout : param, donne le timeout * state_match : état actuel du match * time_last_show_stats : ?, statistiques * sums : dico avec dico t et n, statistiques * t_begin_match : temps de début du match (reset) * e_jack : si ya un event jack (reset) ===== Méthodes ===== Le deuxième niveau des lites à puce représente les paramètres envoyés à la méthode (ou dans de rares cas les différentes actions effectuées par la méthode). * reset : permet de faire un reset (modif gamestate, actionneurs du robot et recharge l’ensemble des actions, attend le jack et match n’a pas encore commencé) * detect_ax12_big : parcours le param resp pour ajouter les aX12 détectés * resp * detect_ax12_mini : idem * resp * cb_sharp_big : parcours les sharp et active les alertes sharp dans gamestate du robot * event * service * resp * cb_jack : démarre le match * event * service * resp * cb_stop : stop l’IA (via stop) * start : démarre l’IA (loopsetup) * stop : stop le client zerobot * loopsetup : reset et premier rafraichissement (gamestate) * loop : vérifie fin du match et si ya pas un robot adverse (via gamestate us_detect et ennemies_angle_mort) et loopRobot si ya rien * loopRobot : param : robot * variables locales : actions, ng, asserv (tout de robot) * test si ya encore 1 action à réaliser, sinon reset (pour recalculer) * évitement si sharp detect qqch * recherche de la meilleur action à effectuer (partie moi) * low_prio : cherche l’action avec la prio la plus basse * actions * stats : appel affichage des stats depuis dernier passage (time_since_last_show_stats et time_last_show_stats) * print_stats : affiche les stats (via gamestate et calcul chelou se basant sur sums) * p : inverse la position sir le robot est rouge * x : inverse x si le robot est rouge * a : inverse l’angle si le robot est rouge * match_over : pour savoir si le match est terminé * get_latency : permet de connaitre la latence des services * service