Page d’aide
Constantes
Le fichier constantes.py
définit un certain nombre de constantes que vous pourrez utiliser dans vos codes:
NORD = 1 EST = 2 SUD = 3 OUEST= 4 MUR = '#' MOI = '1' LUI = '2' LIBRE= ' ' DIRECTIONS = [NORD,EST,SUD,OUEST]
- Les quatres directions cardinales
NORD
,EST
,SUD
etOUEST
sont représentées en interne par des chiffres de 1 à 4. C’est l’une de ces quatre valeur que votre fonctionchoix_mouvement
doit renvoyer pour se faire comprendre du MCP. - La liste
DIRECTIONS
reprend les quatre directions disponibles (utiles quand il s’agira d’itérer sur les directions) LIBRE
est la représentation d’une case libre. Ce sera utile pour savoir si on peut si déplacer en faisant un test:if carte[x,y] == LIBRE: do_something
MUR
contient la représentation d’un murMOI
etLUI
déterminent les caractères représentatifs des emplacements des joueurs 1 et 2
Fichier par défaut
Dans le fichier par défaut (dont le comportement est de choisir une direction aléatoire parmi les directions disponibles), vous disposez de diverses fonctions utiles:
choix_mouvement(carte)
est celle que vous devez changer par vous-même pour changer le comportement de votre robot. C’est la seule que MCP appelle effectivement pour savoir où votre robot veut se diriger. Elle doit forcément renvoyer une des quatre valeursNORD
,EST
,SUD
ouOUEST
, même si aucune ne semble convenir. Elle prend en argument la carte sous forme d’un numpy.array bidimensionnel contenant des chaînes de caractères (MUR
,MOI
,LUI
ouLIBRE
)mouvements_possibles(carte)
permet de déterminer quels sont les mouvement possibles (c’est-à-dire quelles sont les cases libres) autour de votre robot. On doit lui donner la carte que le MCP a transmis initialement à la fonctionchoix_mouvement
.trouve_position(carte,atrouver)
est une fonction générique qui permet de définirou_suis_je(carte)
qui trouve votre position (sous forme d’un couple(x,y)
) sur la carteou_est_il(carte)
qui trouve la position de l’adversaire (sous forme d’un couple(x,y)
) sur la carte
aller_vers_depuis(direction,position,carte)
permet de déterminer les coordonnées du point qui se trouve dans unedirection
donnée (NORD
,SUD
,EST
ouOUEST
) par rapport à uneposition
donnée (sous forme d’un couple(x,y)
)
Vous pouvez bien sûr définir vos propres fonctions annexes, tout ce qui compte c’est que la fonction choix_mouvement(carte)
renvoie une direction (parmi NORD
, EST
, SUD
ou OUEST
) au MCP et qu’elle fasse cela en moins d’une seconde de temps de calcul sur l’ordinateur du tournoi (sinon votre robot sera automatiquement disqualifié).