CommandManager¶
-
class
labpyproject.apps.labpyrinthe.bus.commands.cmd_manager.
CommandManager
[source]¶ Bases :
object
Gestionnaire des commandes
validation des commandes entrées par les joueurs
génération des commandes des joueurs automatiques
Note
Prototype fonctionnel. Classe trop lourde (> 6500 lignes), à reconcevoir de façon plus générique dans une version de production.
Plan du code source :
A- Interface publique B- Méthodes privées d'analyse et de décision B.1- Commande forcée en cas d'échec des algos de décision B.2- Initialisations B.2.1- Cache de sets B.2.2- Initialisations (reconnaissance globale, évaluation des cibles, phase de jeu) B.2.3- Initialisations spécifiques B.3- Génération des données de choix de commande B.4- Evaluation des données de choix de commande B.5- Sélection de cible, recherche de chemins B.5.1- Cible temporaire B.5.2- Interface de recherche de chemins B.5.3- Recherche exhaustive de chemins B.5.4- Recherche optimisée sur de longues distances B.5.5- Approche finale de la cible principale B.6- Qualification des options adjacentes B.7- Anticipation de coups consécutifs B.7.1- Dédiée aux winners et hunters intelligents B.7.2- Recherche d'une série de commandes : analyse et décisions B.7.3- Méthodes de recherche thématiques B.7.4- Schedule tools B.7.5- Application de commandes anticipées B.8- Recherche du prochain coup B.9- Outils communs aux recherches de commande B.10- Outils liés au comportement B.11- Gestion de lancer de grenade B.12- Utilitaires basiques
Constructeur
Attributes Summary
contexte de recherche de coups multiples bonus
contexte de recherche de coups multiples par objectifs
contexte de recherche de coups multiples désespéré
contexte de recherche de coups multiples optimal
distance à la cible caractérisant la phase finale
marque l’objectif attaque
marque l’objectif défense
marque l’objectif mouvement
marque l’objectif aléatoire
marque l’objectif travail
pseudoaction de type attaque
pseudoaction de type prise de bonus
pseudoaction de type destruction de dangers (pour rebattre les cartes)
pseudoaction de type fuite
pseudoaction de type libérer la sortie
pseudoaction de type mouvement
pseudoaction de type déplacement risqué
pseudoaction de type déplacement sans risques
pseudoaction de type ne pas bouger
pseudoaction de type dégager le chemin
liste des types de pseudoactions supportées
approche de la cible
phase finale d’approche
force un chasseur à poursuivre sa cible
partie en cours
début de partie
Methods Summary
analyse_cmd_for_robot
(cmd, robot)Analyse une commande
compute_cmd_for_autobot
(robot, gamblenumber, …)Définit la cmd à appliquer à un robot automatique suivant son comportement
init_robot_before_gamble
(robot, …)Met à jour la vitesse actuelle du robot ainsi que ses zones de déplacement et d’attaque
Ré initialisation avant une nouvelle partie
set_labLevel
(lablevel)Définit ou re définit l’objet LabLevel associé
set_liste_robot
(listrobot)Définit la liste des robots
validate_action_for_robot
(action, robot, …)Initialisations après application d’une commande
Attributes Documentation
-
CTX_BONUS
= 'CTX_BONUS'¶ contexte de recherche de coups multiples bonus
-
CTX_BY_OBJ
= 'CTX_BY_OBJ'¶ contexte de recherche de coups multiples par objectifs
-
CTX_DESPERATE
= 'CTX_DESPERATE'¶ contexte de recherche de coups multiples désespéré
-
CTX_OPTIMAL
= 'CTX_OPTIMAL'¶ contexte de recherche de coups multiples optimal
-
DIST_APPROACH
= 5¶ distance à la cible caractérisant la phase finale
-
OBJ_ATTACK
= 'OBJ_ATTACK'¶ marque l’objectif attaque
-
OBJ_DEFENSE
= 'OBJ_DEFENSE'¶ marque l’objectif défense
-
OBJ_MOVE
= 'OBJ_MOVE'¶ marque l’objectif mouvement
-
OBJ_RANDOM
= 'OBJ_RANDOM'¶ marque l’objectif aléatoire
-
OBJ_WORK
= 'OBJ_WORK'¶ marque l’objectif travail
-
PA_ATTACK
= 'PA_ATTACK'¶ pseudoaction de type attaque
-
PA_BONUS
= 'PA_BONUS'¶ pseudoaction de type prise de bonus
-
PA_DANGERS
= 'PA_DANGERS'¶ pseudoaction de type destruction de dangers (pour rebattre les cartes)
-
PA_ESCAPE
= 'PA_ESCAPE'¶ pseudoaction de type fuite
-
PA_FREE_EXIT
= 'PA_FREE_EXIT'¶ pseudoaction de type libérer la sortie
-
PA_OPTIMAL_MOVE
= 'PA_OPTIMAL_MOVE'¶ pseudoaction de type mouvement
-
PA_RISKED_MOVE
= 'PA_RISKED_MOVE'¶ pseudoaction de type déplacement risqué
-
PA_SAFE_MOVE
= 'PA_SAFE_MOVE'¶ pseudoaction de type déplacement sans risques
-
PA_STAY_IN_PLACE
= 'PA_STAY_IN_PLACE'¶ pseudoaction de type ne pas bouger
-
PA_TERRAFORM
= 'PA_TERRAFORM'¶ pseudoaction de type dégager le chemin
-
PA_TYPES
= ['PA_OPTIMAL_MOVE', 'PA_FREE_EXIT', 'PA_SAFE_MOVE', 'PA_RISKED_MOVE', 'PA_STAY_IN_PLACE', 'PA_TERRAFORM', 'PA_ATTACK', 'PA_BONUS', 'PA_DANGERS', 'PA_ESCAPE']¶ liste des types de pseudoactions supportées
-
PHASIS_APPROACH
= 'PHASIS_APPROACH'¶ approche de la cible
-
PHASIS_FINAL
= 'PHASIS_FINAL'¶ phase finale d’approche
-
PHASIS_HUNT
= 'PHASIS_HUNT'¶ force un chasseur à poursuivre sa cible
-
PHASIS_IN_PROGRESS
= 'PHASIS_IN_PROGRESS'¶ partie en cours
-
PHASIS_START
= 'PHASIS_START'¶ début de partie
Methods Documentation
-
analyse_cmd_for_robot
(cmd, robot)[source]¶ Analyse une commande
Retourne un tuple avec :
un boolean indiquant si la commande a apporté un changement
le dict généré par CommandHelper.translate_cmd
une liste décrivant les conséquences (bonus gagné, danger activé, robot tué, grenade à lancer, case à ajouter)
la case visée par le coup
-
compute_cmd_for_autobot
(robot, gamblenumber, gamblecount, gambleid)[source]¶ Définit la cmd à appliquer à un robot automatique suivant son comportement
- Paramètres
robot –
gamblenumber – numéro du coup (à partir de 1)
gamblecount – nombre de coups consécutifs du joueur
gambleid – id unique d’un coup de la partie
- Renvoie
cmd