WarAgent

WarAgent

Il s’agit de la définition de base de tout les agents de la simulation Warbot dont voici les principales méthodes/fonctions accessibles pour le développement des comportements.

Les messages ainsi que leur contenu doit être des chaînes de caractères uniquement.

Méthodes/Fonctions de base

Messages
  • sendMessage(id,message,content…) : Envoi un message à un autre agent
  • broadcastMessageToAll(message, content…) : Envoi un message à tout les membres de l’équipe
  • broadcastMessageToAgentType(agentType,message, content…) : Envoi un message à tout les agents de l’équipe avec ce type
  • reply(receivedMessage,message,content) : retourne une réponse au message reçu
  • getMessages() : retourne un tableau de message reçu par l’agent
Sac
  • setIdNextAgentToGive(id) : change l’id de l’agent pour l’action give()
  • getBagSize() : retourne la taille maximale du sac de l’agent
  • getNbElementsInBag() : retourne le nombre d’élément présent dans le sac
  • isBagEmpty() : retourne vrai si et seulement si le sac est vide
  • isBagFull() : retourne vrai si et seulement si le sac est plein
Debugging (permet d’afficher des messages lors d’une exécution de Warbot à l’affichage)
  • getDebugString() : retourne le message de debugging
  • setDebugString(message) : modifie le message de debugging
Specials
  • getAveragePositionOfUnitInPercept
  • getIndirectPositionOfAgentWithMessage
  • getTargetedAgentPosition
Fonctions d’état

  • getViewDirection() : retourne la direction de l’agent
  • getHealth() : retourne le niveau de vie actuel de l’agent
  • getMaxHealth() : retourne le niveau de santé maximal de l’agent
  • isBlocked() : retourne vrai si et seulement si l’agent est bloqué par un obstacle (ou un autre agent)
  • getSpeed() : retourne la vitesse de l’agent
  • getHeading() : retourne la direction de l’agent (en angle)
  • setHeading(direction) : modifie la direction de l’agent (0-359)
  • RandomHeading() : modifie de manière aléatoire la direction de l’agent
  • setRandomHeading(range) : modifie de manière aléatoire la direction de l’agent (selon un certain intervalle)
  • getTeamName() : retourne le nom actuel de l’équipe
  • isEnemy(perception) : retourne vrai si et seulement si l’agent perçu n’est pas de la même équipe
  • getID() : retourne l’id
Organisation
  • requestRole(group,role) : demande d’avoir le rôle de ce groupe
  • leaveRole(group,role) : quitter le rôle de ce groupe
  • leaveGroup(group) : quitter le groupe
  • getMaxDistanceTakeFood() : retourne la distance maximale pour ramasser de la nourriture
  • getFoodHealthGiven() : retourne la quantité de vie restaurée par la nourriture
  • angleOfView
  • cost() : retourne le coût pour l’agent
  • distanceOfView() : retourne la distance de vue max de l’agent
  • bagSize() : retourne la taille maximale du sac de l’agent
  • maxHealth() : retourne la vie max de l’agent
  • speed() : retourne la vitesse de l’agent
  • maxDistanceGive() : retourne la distance maximale pour donner à un autre agent
  • setNextAgentToCreate(agentType) : change le type d’agent à créer
  • getNextAgentToCreate() : retourne le type de l’agent à créer prochainement
  • isAbleToCreate(agentType) : retourne vrai si et seulement si l’agent peut créer cette unité
  • ticksToReload() : retourne le nombre d’itérations nécessaires afin que l’arme soit rechargée (uniquement les unités agressives)
  • isReloaded() : retourne vrai si et seulement si l’arme de l’agent est rechargée (uniquement les unités agressives)
  • isReloading() : retourne vrai si et seulement si l’arme de l’agent se recharge (uniquement les unités agressives)
  • Fonctions de test
    • haveTarget() : retourne vrai si et seulement si l’agent a plus d’une perception
    • haveTargets(percepts) : retourne vrai si et seulement si le tableau de perceptions passé contient une cible
    • haveNoTarget() : retourne vrai si et seulement si l’agent n’a aucun élément perçu
    • haveNoTargets(percepts) : retourne vrai si et seulement si le tableau de perceptions ne contient aucune cible
    • isBase(percept) : retourne vrai si et seulement si l’élément perçu est une base
    • isEngineer(percept) : retourne vrai si et seulement si l’élément perçu est un ingénieur
    • isExplorer(percept) : retourne vrai si et seulement si l’élément perçu est un explorateur
    • isKamikaze(percept) : retourne vrai si et seulement si l’élément perçu est un kamikaze
    • isRocketLauncher(percept) : retourne vrai si et seulement si l’élément perçu est un lanceur de missible
    • isTurret(percept) : retourne vrai si et seulement si l’élément perçu est une tourelle
    • isAlly(percept) : retourne vrai si et seulement si l’élément perçu est un allié
    • isFood(percept) : retourne vrai si et seulement si l’élément perçu est de la nourriture
    • shootTarget() : retourne l’action « Tirer » si l’arme est chargée sinon cela retourne « Recharger »
    • pickableFood(percept) : retourne vrai si et seulement si l’élément est de la nourriture qui peut être ramassée
    • isNotBagFull() : retourne vrai si et seulement si le sac n’est pas plein
    • isMessageOfWarBase(message) : retourne vrai si et seulement si l’émetteur est une base
    • isMessageOfWarEngineer(message) : retourne vrai si et seulement si l’émetteur est un ingénieur
    • isMessageOfWarExplorer(message) : retourne vrai si et seulement si l’émetteur est un explorateur
    • isMessageOfWarKamikaze(message) : retourne vrai si et seulement si l’émetteur est un kamikaze
    • isMessageOfWarRocketLauncher(message) : retourne vrai si et seulement si l’émetteur est un lance-missile
    • isMessageOfWarTurret(message) : retourne vrai si et seulement si l’émetteur est une tourelle
    • sendMessageToBases(message,content) : envoi un message à toutes les bases
    • sendMessageToEngineers(message,content) : envoi un message à tous les ingénieurs
    • sendMessageToExplorers(message,content) : envoi un message à tous les explorateurs
    • sendMessageToKamikazes(message,content) : envoi un message à tous les kamikazes
    • sendMessageToRocketLaunchers(message,content) : envoi un message à tous les lanceurs de missiles
    • sendMessageToTurrets(message,content) : envoi un message à toutes les tourelles
    • isPossibleToGiveFood
    • getNextBuildingToBuild
    • setNextBuildingToBuild
    • isAbleToBuild
    • getIdNextBuildingToRepair
    • setIdNextBuildingToRepair
    Perceptions

    Les méthodes suivantes servent à récupérer un tableau de perceptions

    • getPercepts() : permet de récupérer toutes les perceptions visibles de l’agent
    • getPerceptsAllies() :
    • getPerceptsEnemies() :
    • getPerceptsResources() :
    • getPerceptsAlliesByType(warAgentType) :
    • getPerceptsEnemiesByType(warAgentType) :
    • getPerceptsFood():
    • getPerceptsWarBase():
    • getPerceptsWarEngineer():
    • getPerceptsWarExplorer():
    • getPerceptsWarKamikaze():
    • getPerceptsWarRocketLauncher()
    • getPerceptsWarTurret():
    • getPerceptsAlliesWarBase():
    • getPerceptsAlliesWarEngineer():
    • getPerceptsAlliesWarExplorer():
    • getPerceptsAlliesWarKamikaze():
    • getPerceptsAlliesWarRocketLauncher()
    • getPerceptsAlliesWarTurret()
    • getPerceptsEnemiesWarBase()
    • getPerceptsEnemiesWarEngineer()
    • getPerceptsEnemiesWarExplorer()
    • getPerceptsEnemiesWarKamikaze()
    • getPerceptsEnemiesWarRocketLauncher()
    • getPerceptsEnemiesWarTurret()
    Actions d’agent
    • create() : permet de créer des nouvelles unités (uniquement les unités créatrices)
    • eat() : permet de récupérer de l’énergie s’il y a de la nourriture dans le sac
    • give() : permet de donner un objet à l’agent ciblé.
    • idle() : permet de ne rien faire durant une itération
    • move() : se déplacer en avant (uniquement les unités mouvantes)
    • take() : ramasse l’objet le plus proche
    • fire() : lance une attaque (missile ou explosion – uniquement les unités agressives)
    • reloadWeapon() : lance une attaque (missile ou explosion – uniquement les unités agressives)
    • followTarget(percept) : se déplacer vers la cible (uniquement les unités mouvantes)
    • giveToTarget
    • createEngineer
    • createExplorer
    • createKamikaze
    • createRocketLauncher
    • createTurret
    • createWall