LabManager¶
-
class
labpyproject.apps.labpyrinthe.bus.helpers.lab_manager.
LabManager
(gameMngr)[source]¶ Bases :
object
Gestionnaire de labyrinthe
Constructeur
- Paramètres
gameMngr (GameManager) –
Methods Summary
add_case
(case)Ajoute une case au LabLevel
analyse_cmd_for_robot
(cmd, uid)Analyse une commande pour le robot d’id uid
compute_cmd_for_autobot
(uid, gamblenumber, …)Définit la cmd à appliquer à un robot automatique suivant son comportement
create_random_carte
([fullrandom, width, …])Crée aléatoirement une carte texte.
Définit les sous matrices de cases vides dédiées à la ditribution initiale des XTras (bonus, mines).
explosion_callback
(dictscenario)Callback de fin d’explosion (animée ou non)
get_bots_datas
([full])Retourne un dictionnaire à sérialiser comprenant toutes les données relatives aux robots.
Retourne la clef caractérisant les changements apportés au LabLevel.
Retourne uniquement les changements graphiques apportés depuis le dernier appel à self.init_step_changelogs.
Retourne w, h
get_explosion_scenario
(uid, casedanger)Appelée lorsqu’une case danger est déclenchée
Retourne l’applat de matrices pour affichage.
Retourne toutes les données d’affichages destinées à une GUI graphique pour une publication complète de la carte.
get_parsedicts_for_listcases
(listcase)Retourne un dict à parser pour une liste de cases (master).
Retourne un dictionnaire à sérialiser comprenant toutes les données nécessaires au parsing.
get_repr_view
([matrice])Retourne la représentation texte du labyrinthe pour affichage.
get_robot_by_uid
(uid)Retourne la case associée au robot d’identifiant uid ou None
Retourne la liste des robots.
handle_animation_step
(scenariodict, current_step)Effectue les traitement d’une étape d’animation.
has_robot_won
(uid)Indique par un boolean si le robot d’id uid a gagné
Ré initialise les logs du LabLevel.
init_robot_before_gamble
(uid, gamblenumber, …)Met à jour la vitesse actuelle du robot ainsi que ses zones de déplacement et d’attaque
Ré initiazlise les logs d’étape.
Indique s’il reste des bots susceptibles de gagner la partie, à savoir un joueur humain, un winner ou un chasseur.
move_case
(case, x, y)Déplace une case du LabLevel
Indique si l’on doit compléter les bonus et dangers
on_bonus_win
(casebonus)Appelée lorsque le robot d’uid passe sur une case bonus
on_cmd_for_robot_done
(dictcmd, robot, …)Post traitement après qu’une commande ait été appliquée.
on_robot_killed
(uid[, delete])Appelée lorsqu’un robot est éliminé
parse_labyrinthe
(kwargs)Parse la carte textuelle et crée les cases robots, bonus, dangers.
publish_players
(playerlist)Positionne les robots pré enregistrés après chargement de la carte.
random_distribute_XTras
([initialpub])Distribution aléatoire des bonus et dangers
Ré initialisation avant une nouvelle partie
rebuild_labyrinthe
(kwargs)En cas de désynchronisation en mode slave, on reparse intégralement les données (slave).
register_robot
(dictrobot)Ajoute un robot à la liste.
remove_case
(case)Supprime une case du Lablevl
Trie de la liste des bots par order croissant.
update_bots_or_XTras
(kwargs)Ajoute des cases robots, ou bonus et dangers crées par le master (slave).
update_robotlist
(rlist)En contexte master les robots n’ont pas été identifiés au parsing, on met à jour la liste avant de démarrer la partie.
Methods Documentation
-
analyse_cmd_for_robot
(cmd, uid)[source]¶ Analyse une commande pour le robot d’id uid
Retourne un tupple 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 l’action
-
compute_cmd_for_autobot
(uid, gamblenumber, gamblecount, gambleid)[source]¶ Définit la cmd à appliquer à un robot automatique suivant son comportement
uid : id unique du robot
gamblenumber : numéro du coup (à partir de 1)
gamblecount : nombre de coups consécutifs du joueur
Retour : cmd
-
create_random_carte
(fullrandom=True, width=30, height=20, propvide=0.55, propporte=0.05)[source]¶ Crée aléatoirement une carte texte. Retourne une liste de lignes (comme le fait cio.load_text_file)
-
define_initial_samples
()[source]¶ Définit les sous matrices de cases vides dédiées à la ditribution initiale des XTras (bonus, mines). Génère de 4 à 16 sous matrices.
-
explosion_callback
(dictscenario)[source]¶ Callback de fin d’explosion (animée ou non)
- Paramètres
dictscenario – dict généré par self._create_animation_scenario
-
get_bots_datas
(full=True)[source]¶ Retourne un dictionnaire à sérialiser comprenant toutes les données relatives aux robots.
-
get_diff_graph_datas
()[source]¶ Retourne uniquement les changements graphiques apportés depuis le dernier appel à self.init_step_changelogs.
-
get_graph_matrices
()[source]¶ Retourne toutes les données d’affichages destinées à une GUI graphique pour une publication complète de la carte.
-
get_parsedicts_for_listcases
(listcase)[source]¶ Retourne un dict à parser pour une liste de cases (master).
-
get_parsing_datas
()[source]¶ Retourne un dictionnaire à sérialiser comprenant toutes les données nécessaires au parsing.
-
handle_animation_step
(scenariodict, current_step)[source]¶ Effectue les traitement d’une étape d’animation. Retourne la liste des robots éliminés.
-
init_robot_before_gamble
(uid, gamblenumber, gamblecount)[source]¶ Met à jour la vitesse actuelle du robot ainsi que ses zones de déplacement et d’attaque
-
is_partie_ended
()[source]¶ Indique s’il reste des bots susceptibles de gagner la partie, à savoir un joueur humain, un winner ou un chasseur.
-
on_cmd_for_robot_done
(dictcmd, robot, next_case, botskilled, gambleid, gamblenumber, gamblecount)[source]¶ Post traitement après qu’une commande ait été appliquée.
-
parse_labyrinthe
(kwargs)[source]¶ Parse la carte textuelle et crée les cases robots, bonus, dangers.
-
publish_players
(playerlist)[source]¶ Positionne les robots pré enregistrés après chargement de la carte.
-
random_distribute_XTras
(initialpub=False)[source]¶ Distribution aléatoire des bonus et dangers
- Paramètres
initialpub – indique s’il s’agit de la publication initiale
-
rebuild_labyrinthe
(kwargs)[source]¶ En cas de désynchronisation en mode slave, on reparse intégralement les données (slave).
-
register_robot
(dictrobot)[source]¶ Ajoute un robot à la liste.
- Paramètres
dictrobot – dict généré par robot.get_properties_dict()