Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
ia:ia_base [2013/11/28 19:23] qchateau effacée |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== 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 | ||