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
detect_ax12_mini : idem
cb_sharp_big : parcours les sharp et active les alertes sharp dans gamestate du robot
cb_jack : démarre le match
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
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
informatique/ia/ia_base.txt · Dernière modification: 2013/11/28 19:23 par qchateau