Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Généraliser les fonctions d'assignations des tactiques du UI-Debug #79

Closed
jenifaelle opened this issue Sep 18, 2016 · 2 comments
Closed
Assignees

Comments

@jenifaelle
Copy link
Contributor

Actuellement, la gestion de l'assignation des tactiques par le UI-Debug nécessite de modifier le code à deux endroits: le TacticBook (module sous le package Tactic) et de modifier un arbre de if/else dans le DebugExecutor. La fonction dans le DebugExecutor devrait être généralisée pour pouvoir prendre automatiquement les nouveaux types de Tactic.

Ceci nécessite que le UI-Debug envoie des informations plus intéressantes par défaut associé à chaque Tactique. Une demande va être ouverte en ce sens dans le dépôt du UI-Debug. Il est possible aussi que l'API de Tactique nécessite des meilleurs valeurs par défaut. Ceci est dans le but de simplifier l'ajout de nouvelles tactiques et que l'outil de debug soit à jour automatiquement.

@jenifaelle jenifaelle added this to the Solidifier STA milestone Sep 18, 2016
@jenifaelle jenifaelle self-assigned this Sep 18, 2016
@jenifaelle
Copy link
Contributor Author

@jenifaelle
Copy link
Contributor Author

##Proposition d'architecture

  • On implémente une annotation de type dans les signatures de toute la hiérarchie de Tactique.
  • On inspecte au runtime les annotations des tactiques disponibles dans le TacticBook
  • Le UI-Debug et StrategyIA partage une bibliothèque de types (si on doit étendre au-delà de ce qui est disponible dans la bibliothèque standard)
  • Après l'inspection, on injecte les types attendus de la tactique (excepté la signature de base: id, game_state, target), il s'agit des informations supplémentaires qu'une Tactique a de besoin et que le UI-Debug devra fournir une interface pour sélectionne
  • Si la signature n'est pas annoté, l'algorithme d'inspection ignore la Tactique et indique dans le paquet une signature incomplète, un flag similaire est passé dans l'assignation d'une tactique pour que l'algorithme en charge de modifier la stratégie courante avec la Tactique sache ignorer l'assignation (et qu'on envoie un log de warning)

##Détails sur la collecte de donnée

La tactique CoverZone nécessite une zone, cette zone pourrait être sélectionné par un drag & drop. L'objet renvoyé serait un objet commun aux deux systèmes d'une hypothétique hiérarchie Target.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants