LabLevel¶
-
class
labpyproject.apps.labpyrinthe.bus.model.core_matrix.
LabLevel
[source]¶ Bases :
object
Niveau multi-couches (matrices, couches animées) modélisant la carte d’une partie.
Constructeur
Methods Summary
clear
([typecase, complete])Efface une ou toutes les couches du niveau
delete_case
(case)Supprime une case
discard_cache
(typecase[, full])Appelée lorsqu’un changement de case (coords ou type) rend les applats obsolètes
evaluate_bot_attack_proba_for_robot
(robot, bot)Evalue pour les cases de robot.move_zone la probabilité d’attaque possible par bot.
Retourne la projection de la couche d’animation sous forme de matrice.
get_bot_attack_zone
(robot[, nextgamble])Retourne le set de coords de la sous matrice représentant les cases pouvant être impactées par le robot.
get_bot_move_zone
(robot[, nextgamble])Retourne le set de coords de la sous matrice de forme losange représentant le rayon de déplacement du robot.
Retourne la case sortie
get_cases_adj_impacted_by_danger
(casedanger)Retourne le set des cases impactées par l’explosion d’un danger sans récursivité.
get_cases_reachable_by_grenade_in_dir
(robot, …)Retourne le set des cases atteignables par un jet de grenade dans la direction donnée.
get_cases_with_same_coords
(target)Retourne toutes les cases de même coords que target
get_caseset_for_coordset
(coordset)Retourne le set de cases associé au set de coordonnées
Retourne les logs de modifications
Retourne w, h
get_dirs_for_vector
(vect)Retourne une liste de directions associées au vecteur
get_distance_between_cases
(case1, case2)Calcul la distance entre deux cases
get_flat_matrice
([full, guidedicated])Retourne la matrice représentant l’applat de couches
get_layer
(typecase)Retourne la matrice associée au type_case
Recherche les mines comprises dans la matrice 5*5 centrée sur case
get_path_length_between_cases
(case1, case2)Calcul la distance du chemin entre deux cases
Retourne les coordonnées de la sortie
Retourne les logs de changement d’étape
get_sublevel
(x, y, w, h)Retourne le sous niveau d’origine x, y et de dims w, h
get_typecase_set
(typecase)Retourne le set de cases associées à typecase dans l’applat complet
get_vector_for_cases
(case1, case2)Retourne un tuple représentant le vecteur allant de c1 à c2
Initialise les logs fins avant des changements
Initialise les logs de sous étape de transformation
mark_case_as_modified
(case)Ajoute la case à la liste « add » des changelogs d’étape
move_case
(case, nextx, nexty)Déplace une case aux coordonnées nextx, nexty
scalar_product
(vect1, vect2)Calcul le produit scalaire v1.v2
set_case
(case)Ajoute ou modifie une case
update_bot_action_zones
(robot[, nextgamble])Interface de mise à jour des zones de mouvements et d’attaque du robot.
Met à jour les applats
xlook_for_cases_impacted
(casedanger[, …])Identification récursive des cases impactées par l’activation d’un danger
Methods Documentation
-
clear
(typecase=None, complete=False)[source]¶ Efface une ou toutes les couches du niveau
- Paramètres
typecase – typage du LabHelper
complete – efface toutes les couches
-
discard_cache
(typecase, full=False)[source]¶ Appelée lorsqu’un changement de case (coords ou type) rend les applats obsolètes
-
evaluate_bot_attack_proba_for_robot
(robot, bot)[source]¶ Evalue pour les cases de robot.move_zone la probabilité d’attaque possible par bot. Rq : approximations rapides et sous évaluées. Méthode destinée à des situations désespérées.
-
get_animation_matrice
()[source]¶ Retourne la projection de la couche d’animation sous forme de matrice. Usage : animation de type « face »
-
get_bot_attack_zone
(robot, nextgamble=False)[source]¶ Retourne le set de coords de la sous matrice représentant les cases pouvant être impactées par le robot.
- Paramètres
nextgamble – si True limite la recherche aux coups à venir (considère la vitesse courante au lieu de la vitesse « absolue »)
-
get_bot_move_zone
(robot, nextgamble=False)[source]¶ Retourne le set de coords de la sous matrice de forme losange représentant le rayon de déplacement du robot.
- Paramètres
nextgamble – si True limite la recherche aux coups à venir (considère la vitesse courante au lieu de la vitesse « absolue »)
-
get_cases_adj_impacted_by_danger
(casedanger)[source]¶ Retourne le set des cases impactées par l’explosion d’un danger sans récursivité. La case du danger n’est pas comptée.
-
get_cases_reachable_by_grenade_in_dir
(robot, direct)[source]¶ Retourne le set des cases atteignables par un jet de grenade dans la direction donnée.
-
get_flat_matrice
(full=True, guidedicated=False)[source]¶ Retourne la matrice représentant l’applat de couches
si full = True : toutes les couches sont publiées
si full = False : seules les couches nécessaires au parsing le sont
si guidedicated = True : matrice dédiée aux GUIs graphiques, en pratique la même matrice que celle dédiée au parsing
-
get_minelist_arround_case
(case)[source]¶ Recherche les mines comprises dans la matrice 5*5 centrée sur case
-
get_typecase_set
(typecase)[source]¶ Retourne le set de cases associées à typecase dans l’applat complet
- Paramètres
typecase – famille courante (voir _build_fullflat_typecase_cache) ou type_case unitaire (dans LabHelper.FULL_CASETYPES)
-
get_vector_for_cases
(case1, case2)[source]¶ Retourne un tuple représentant le vecteur allant de c1 à c2
-
update_bot_action_zones
(robot, nextgamble=False)[source]¶ Interface de mise à jour des zones de mouvements et d’attaque du robot.
- Paramètres
nextgamble – si True limite la recherche aux coups à venir (considère la vitesse courante au lieu de la vitesse « absolue »)
-
xlook_for_cases_impacted
(casedanger, count=0, dictimpact=None)[source]¶ Identification récursive des cases impactées par l’activation d’un danger
Retourne un dictionnaire :
dictimpact[« danger_done »] : usage interne
dictimp[« flat_list »] : liste (set) complète des cases impactées
dictimpact[0] : liste (set) de tupples (case, impact) des cases touchées au pas 0
…
dictimpact[n] : liste (set) de tupples (case, impact) des cases touchées au pas n
avec n : nombre de pas d’animation.
Rq importante : les données mises en cache ne comprennent pas le danger initial. En effet lors des calculs de commandes automatiques, on simule des explosions avec des grenades virtuelles. On n’inclue le danger réel qu’au dernier moment.
-