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.

define_initial_samples()

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.

get_changelogs_key()

Retourne la clef caractérisant les changements apportés au LabLevel.

get_diff_graph_datas()

Retourne uniquement les changements graphiques apportés depuis le dernier appel à self.init_step_changelogs.

get_dimensions()

Retourne w, h

get_explosion_scenario(uid, casedanger)

Appelée lorsqu’une case danger est déclenchée

get_flatmatrice()

Retourne l’applat de matrices pour affichage.

get_graph_matrices()

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).

get_parsing_datas()

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

get_robotlist()

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é

init_changelogs()

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

init_step_changelogs()

Ré initiazlise les logs d’étape.

is_partie_ended()

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

need_to_complete_XTras_after_gamble()

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

re_initialise()

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

sort_bots_by_order()

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

add_case(case)[source]

Ajoute une case au LabLevel

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_changelogs_key()[source]

Retourne la clef caractérisant les changements apportés au LabLevel.

get_diff_graph_datas()[source]

Retourne uniquement les changements graphiques apportés depuis le dernier appel à self.init_step_changelogs.

get_dimensions()[source]

Retourne w, h

get_explosion_scenario(uid, casedanger)[source]

Appelée lorsqu’une case danger est déclenchée

get_flatmatrice()[source]

Retourne l’applat de matrices pour affichage.

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.

get_repr_view(matrice=None)[source]

Retourne la représentation texte du labyrinthe pour affichage.

get_robot_by_uid(uid)[source]

Retourne la case associée au robot d’identifiant uid ou None

get_robotlist()[source]

Retourne la liste des robots.

handle_animation_step(scenariodict, current_step)[source]

Effectue les traitement d’une étape d’animation. Retourne la liste des robots éliminés.

has_robot_won(uid)[source]

Indique par un boolean si le robot d’id uid a gagné

init_changelogs()[source]

Ré initialise les logs du LabLevel.

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

init_step_changelogs()[source]

Ré initiazlise les logs d’étape.

is_partie_ended()[source]

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)[source]

Déplace une case du LabLevel

need_to_complete_XTras_after_gamble()[source]

Indique si l’on doit compléter les bonus et dangers

on_bonus_win(casebonus)[source]

Appelée lorsque le robot d’uid passe sur une case bonus

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.

on_robot_killed(uid, delete=False)[source]

Appelée lorsqu’un robot est éliminé

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

re_initialise()[source]

Ré initialisation avant une nouvelle partie

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()

remove_case(case)[source]

Supprime une case du Lablevl

sort_bots_by_order()[source]

Trie de la liste des bots par order croissant.

update_bots_or_XTras(kwargs)[source]

Ajoute des cases robots, ou bonus et dangers crées par le master (slave).

update_robotlist(rlist)[source]

En contexte master les robots n’ont pas été identifiés au parsing, on met à jour la liste avant de démarrer la partie.