Des IAs de base sont disponibles dans le kit de démarrage. Elles peuvent vous aider à appréhender votre propre IA.

  Objectif

Gagner plus de points que votre adversaire.
Le jeu se déroule dans une forêt, dans laquelle de doux esprits résident. Ils sont responsable de veiller à ce que les arbres achèvent leur cycles de vie.
Deux esprits de la forêt sont en compétition pour la place de l'esprit le plus efficace.
Plantez et faites pousser stratégiquement les arbres de la forêt pour maximiser vos points.

  Règles

Chaque joueur incarne un esprit de la forêt. La jeu se déroule sur une grille hexagonale représentant la forêt.
La partie se déroule sur plusieurs rounds appelés jours. Chaque jour peut être composé de plusieurs tours de jeu. À chaque tour, les deux joueurs font une action simultanément.

Forêt

La forêt est composée de 37 cases hexagonales, arrangée en un plus grand hexagone.
Chaque case peut contenir un arbre. Chaque arbre appartient à l'un des joueurs et possède une taille (size) :
  • 1 pour un petit arbre.
  • 2 pour un arbre moyen.
  • 3 pour un grand arbre.
Chaque case a une richesse (richness) qui peut valoir :
  • 1 pour un sol de mauvaise qualité.
  • 2 pour un sol de qualité moyenne.
  • 3 pour un sol de bonne qualité.

Jours

Au début de chaque jour, les joueurs recoivent des points de soleil.
Ensuite, les joueurs executent des actions en dépensant leurs points de soleil.
Le jour se termine quand tous les joueurs arrêtent d'agir.
Plus d'informations sur les actions et les points de soleil dans la suite de l'énoncé.

Points de soleil

Aidant les esprits des bois, des petits esprits se cachent dans les arbres.
Les petits esprits de la forêt vont récupérer des points de soleil grâce à chaque arbre.
Les points seront données au joueur auquel appartient l'arbre.
Le nombre de points récupérés dépend de la taille de l'arbre :
  • Une arbre de taille 1 : 1 point de soleil.
  • Une arbre de taille 2 : 2 points de soleil.
  • Une arbre de taille 3 : 3 points de soleil.
Un point de soleil

Actions

Après avoir collecté les points de soleil, chaque joueurs effectuent des tours simultanés en prenant l'une des trois actions possibles.
Tant que vous avez assez de points de soleil, vous pouvez prendre autant d'actions que vous souhaitez.
Les actions possibles sont :
  • GROW : Commandez à un arbre ou une graine de grandir jusqu'a la taille suivante. Les arbres peuvent grandir jusqu'à la taille 3 .
  • COMPLETE : Commandez à un arbre de compléter son cycle de vie. Cette action retire l'arbre de la forêt et vous fait marquer des points. Plus d'informations sur les points dans la suite de l'énoncé.
  • WAIT : Passez le reste du jour à dormir et ne rien faire. Lorsque les deux joueurs dorment, un nouveau jour commence et les deux joueurs se réveillent.
Chaque arbre ayant effectué une action devient endormi pour le reste du jour. Un arbre endormi ne peut effectuer aucune action.
Un arbre endormi

Action Grow

  • Faire pousser un arbre de taille 1 en un arbre de taille 2 coûte 3 points de soleil + le nombre d'arbres de taille 2 que vous possédez déjà.
  • Faire pousser un arbre de taille 2 en un arbre de taille 3 coûte 7 points de soleil + le nombre d'arbres de taille 3 que vous possédez déjà.
Faire pousser un arbre

Action Complete

Compléter le cycle de vie d'un arbre coûte 4 points de soleil.
Vous ne pouvez compléter le cycle de vie que des arbres de taille 3
La forêt commence avec une valeur de nutriments (nutrient) égale à 20.
Compléter le cycle de vie d'un arbre vous rapportera autant de points que la valeur actuelle de nutriments (nutrient) + un bonus basé sur la richesse (richness) de la case :
  • 1 : +0 points.
  • 2 : +2 points.
  • 3 : +4 points.
Ensuite, la valeur de nutriments (nutrient) est réduite de 1 de manière permanente.

⛔ Fin du jeu

Pour cette ligue, le jeu dure le temps qu'il faut au soleil pour tourner autour du plateau 1 fois. Ce qui signifie que les joueur disposent de 6 jours pour jouer.
Les joueurs gagnent 1 point bonus par tranche de 3 points de soleil qu'il leur reste à la fin du jeu.
Si les joueurs ont le même score, le gagnant est le joueur qui possède le plus d'arbres dans la forêt. Notez qu'une graine est aussi considéré comme étant un arbre.
Conditions de victoire
    Le gagnant est le joueur avec le plus grand nombre de points.
Condition de défaite
    Vous effectuez une action invalide ou votre programme ne répond pas dans les temps.

🐞 Conseils de débogage

  • Survolez une case pour voir davantage d'informations
  • Ajoutez du texte à la fin d'une instruction pour afficher ce texte à côté de votre esprit des bois
  • Cliquez sur la roue dentée pour afficher des options supplémentaires
  • Utilisez le clavier pour contrôler les actions : espace pour lire/mettre en pause, les flèches pour avancer pas à pas

  Détails techniques

  • Les joueurs commencent la partie avec des arbres de taille 1 placés aléatoirement sur la grille.
  • Les joueurs qui dorment ne reçoivent pas d'information.
  • Si les deux joueurs complètent le cycle de vie d'un arbre au même tour, ils recoivent tous les deux tous les points, puis la valeur des nutriments est baissée de 2.
  • La valeur des nutriments (nutrient) ne peux pas descendre en dessous de 0.
  • Vous pouvez voir le code source sur ce repo GitHub.

  Protocole de jeu

Initialization Input
Ligne 1 : numberOfCells égal à 37.
Les numberOfCells lignes suivantes : 8 entiers :
  • index pour l'indice de la case.
  • richness pour sa richesse.
  • 6 variables neigh : Ignorez pour cette ligue.
Entrées pour un tour de jeu
Ligne 1 : Un entier day : le jour actuel, de 0 à 5.
Ligne suivante : Un entier nutrients : la valeur actuelle de nutriments de la forêt.
Ligne suivante : 2 entiers :
  • mySun : votre nombre actuel de points de soleil.
  • myScore : votre score actuel.
Ligne suivante : 3 entiers :
  • oppSun : le nombre actuel de points de soleil de votre adversaire.
  • oppScore : le score actuel de votre adversaire.
  • oppIsWaiting : égal à 1 si votre adversaire dort, 0 sinon.
Ligne suivante : Un entier numberOfTrees pour le nombre actuel d'arbres dans la forêt.
Les numberOfTrees lignes suivantes : 4 entiers décrivant chaque arbre :
  • cellIndex : l'indice de la case sur laquelle l'arbre se trouve.
  • size : la taille de l'arbre. De 0 (graine) à 3 (grand arbre).
  • isMine : 1 si vous possédez l'arbre, 0 sinon.
  • isDormant : 1 si l'arbre est endormi, 0 sinon.
Ligne suivante : Un entier numberOfPossibleActions pour le nombre d'actions valides que vous pouvez faire ce tour.
Les numberOfPossibleActions lignes suivantes : Une chaîne de caractères possibleAction contenant une des actions que vous pouvez renvoyer ce tour-ci.
Cette liste est présente pour vous aider à débuter.
Output
Une seule ligne contenant votre action :
  • GROW index : faites grandir votre arbre sur la case index de 1 taille.
  • COMPLETE index : faites que l'arbre de grande taille sur la case index complète son cycle de vie. Cette action libère la case
  • WAIT : endormez-vous jusqu'au début du prochain jour.
Contraintes
Temps de réponse par tour ≤ 100ms
Temps de réponse au premier tour ≤ 1000ms
Qu'est-ce qui m'attend dans les prochaines ligues ?
Les nouvelles règles débloquées dans les prochaines ligues sont :