1 points par GN⁺ 2026-01-07 | 1 commentaires | Partager sur WhatsApp
  • Jeu de réflexion où il faut enfermer un cheval avec un nombre limité de murs, avec pour objectif de construire l’enclos le plus grand possible
  • Le joueur clique sur des cases d’herbe pour placer des murs, et le cheval ne peut ni se déplacer en diagonale ni traverser l’eau
  • En incluant des cerises (Cherries) à l’intérieur de l’enclos, on obtient des points supplémentaires, et plus l’enclos est grand, plus le score est élevé
  • Prend en charge un éditeur de niveaux, un classement, des énigmes quotidiennes et une fonction d’exploration des niveaux créés par les utilisateurs
  • Parti d’une idée simple, le jeu a évolué en problème d’optimisation dans le style Leetcode/Advent of Code

Présentation du jeu

  • enclose.horse est un jeu de réflexion où il faut enfermer un cheval en utilisant un nombre limité de murs
    • Le but est d’entourer d’une clôture la zone la plus grande possible
    • Le score dépend de la taille de l’enclos et du nombre de cerises incluses
  • Le fonctionnement consiste à cliquer sur les cases d’herbe pour ériger des murs
    • Le cheval ne peut ni se déplacer en diagonale ni sur l’eau
    • Inclure des cerises dans l’enclos rapporte +3 points
    • La soumission n’est possible qu’une seule fois

Interface et fonctionnalités du jeu

  • Les informations du niveau affichent notamment la taille (12x14), le budget de murs (12), le nombre de parties (4455) et l’ID du niveau (ZtiI9g)
  • Le menu des paramètres permet d’ajuster le nom, les lignes de la grille, le thème et les réglages avancés
  • Le classement enregistre le nom et permet de comparer son score avec celui des autres joueurs
  • L’éditeur de niveaux permet de créer et partager soi-même des énigmes
  • La page « Browse » permet d’explorer les niveaux créés par d’autres utilisateurs et de voter après y avoir joué

Historique des mises à jour

  • 29 décembre 2025 : sortie initiale, ajout de l’éditeur de niveaux et du classement
  • 30 décembre : introduction des énigmes quotidiennes (Daily puzzles) et des énigmes passées (Past Puzzles)
  • 31 décembre : ajout d’un onglet de mises à jour
  • 1er janvier 2026 : ajout du Solver dans l’éditeur de niveaux, ainsi que de l’exploration et du vote pour les niveaux créés par les utilisateurs
  • 2 janvier : ajout du suivi de la meilleure surface atteinte pendant la partie
  • 3 janvier : ajout de l’élément cerise
  • 4 janvier : correction d’un bug lié aux cerises et amélioration des filtres de recherche

Contexte de développement

  • Le développeur a conçu ce jeu au départ comme un problème d’optimisation à la manière de Leetcode ou Advent of Code
  • Après l’avoir essayé lui-même, il a estimé qu’il valait la peine d’en faire un véritable jeu de réflexion abouti
  • Le jeu est créé par Shivers et publié via le site officiel et le compte X (Twitter)

Autres éléments

  • La fonctionnalité « Horse Tip » avertit lors de la soumission s’il reste encore des murs
    • Une option « Ne plus afficher » est proposée
  • Une fonction de signalement de bugs permet de signaler les niveaux inappropriés ou impossibles
  • Quelques éléments humoristiques sont inclus, comme le fait de nommer cinq cerises (Name Five of Cherries)

1 commentaires

 
GN⁺ 2026-01-07
Commentaires sur Hacker News
  • C’était un jeu vraiment amusant. Si le développeur collecte bien les données, regrouper 100 niveaux par difficulté et le sortir sur Steam pourrait être une bonne idée.
    En revanche, l’animation où les portes montent vers le haut casse la logique visuelle en 2D et crée de la confusion.
    J’espère que de nouveaux mécanismes de jeu seront ajoutés à l’avenir. Par exemple :

    • Nourriture : le cheval se déplace vers la nourriture à chaque tour. Des bottes de foin ou des morceaux de sucre pourraient servir d’appâts
    • Case objectif : une énigme où il faut guider le cheval avec des barrières pour l’amener sur une case précise
    • Inondation : l’eau monte depuis les bords, et il faut à la fois enfermer le cheval et bloquer l’eau
    • Certains ont dit que ce genre de collecte de données les mettait mal à l’aise. Je pense qu’il faut aussi des jeux qu’on peut apprécier purement, sans surveillance
    • Ce jeu a du potentiel comme mini-jeu au tour par tour. L’idée de placer des murs pendant que le cheval se dirige vers la sortie pour détourner son chemin, avec un nombre limité de murs afin de lui faire parcourir le plus de cases possible, est intéressante
    • Je suis d’accord avec l’idée que le mouvement vertical des portes ne s’accorde pas avec l’esthétique générale. Cela dit, le jeu reste excellent
    • J’ai interprété cette animation comme une vue de RPG en top-down. Je n’ai pas trouvé ça visuellement confus, mais sur mobile c’était pénible, car il était facile de toucher la mauvaise case
    • À mon avis, plus un jeu est simple, mieux c’est. Si on sait programmer, ce serait aussi un bon projet d’apprentissage à recréer soi-même sur quelques week-ends
  • J’ai cherché à la main la solution optimale de l’énigme du jour 8, et c’était assez amusant.
    Je suis parti d’une solution minimale, puis je l’ai étendue étape par étape en veillant à conserver une solution valide à chaque déplacement de mur.
    Au final, j’ai trouvé le score optimal en 15 minutes

    • Quelqu’un a fait remarquer que cette approche ressemblait à la façon de penser du TDD (développement piloté par les tests)
    • J’ai utilisé le même algorithme. L’approche top-down ne marchait pas bien, mais c’était vraiment amusant
  • Ce serait amusant de remplacer les cerises par des batteries et de renommer le jeu Correct Horse Battery Stable

    • Ou remplacer les cerises par une pâtisserie ou un snack PBJ pour en faire Collect Horse Buttery Stable, ce qui serait mignon
    • Quelqu’un a aussi proposé d’utiliser des agrafes (staples) au lieu des murs
    • Une autre idée était de remplacer les cerises par des morceaux de sucre et de l’appeler My Lovely Horse
    • Cette blague fait référence à xkcd 936
  • Le jeu était très bon. En revanche, quand on clique sur “Show optimal”, c’est dommage de ne pas pouvoir le comparer à sa propre solution.
    Les murs occupent visuellement une case et demie, ce qui est déroutant, et le design fait penser à un enclos pour dinosaures, alors qu’un enclos pour chevaux serait plus approprié

    • Ce serait bien de transformer “Show optimal” en bouton bascule pour pouvoir alterner avec sa propre solution. Je partage aussi l’avis selon lequel, sur mobile, les murs se chevauchent et rendent les touches difficiles
    • Il faudrait un bouton pour basculer rapidement. Moi, j’ai trouvé comment revenir à ma solution via le menu des dates passées
    • Quand on clique sur le cheval, il parle du démon chevalin, donc il y a peut-être autre chose derrière
  • La valeur initiale du score serait plus dans le thème si, au lieu de N/A, il y avait N/EIGH

    • Ça me rappelle une vieille BD sur un parlement de chevaux (neigh) que j’avais vue
    • J’admire la créativité qu’il faut pour avoir ce genre d’idée
  • J’ai carrément créé un chercheur de solutions moi-même

    1. Prendre une capture d’écran de la grille
    2. La téléverser sur enclosure-horse-solution.onrender.com
    3. Vérifier le nombre de murs, puis cliquer sur Solve
      Comme c’est la version gratuite, il y a parfois des crashs, mais j’ai ajouté du cache.
      On peut aussi l’exécuter en local depuis le dépôt GitHub
    • Dans l’éditeur de niveaux, on peut créer des cartes personnalisées et voir la solution optimale. En recréant les cartes officielles, on peut même vérifier l’intention du développeur
    • Certains ont demandé si le cache était en mémoire ou sur disque. Quelque chose comme Redis semblerait plus robuste
    • Le serveur tombe souvent en panne, donc si les résultats ne s’affichent pas, il vaut mieux l’exécuter en local
  • J’aimerais qu’il y ait une fonction pour comparer en une fois ma solution et la solution optimale

    • Moi aussi, j’ai fini par prendre deux captures d’écran pour les comparer
    • Une vue côte à côte (diff) serait parfaite
  • Je me demande comment trouver algorithmiquement la solution optimale à ce problème. J’avais essayé de résoudre quelque chose de similaire dans Factorio, sans trouver de méthode rapide

    • D’après le site, ils utilisent Answer Set Programming (ASP) et le moteur Clingo. Ce type de problème de maximisation sur grille est probablement NP-difficile. Les solveurs SAT/SMT sont inefficaces pour les calculs de flood-fill
    • D’autres pensent qu’une approche en programmation par contraintes serait adaptée. On peut traiter les positions des murs comme des variables et définir comme contraintes les cases que le cheval peut atteindre
    • Quelqu’un a dit que ce problème lui faisait penser à diverses approches d’optimisation, comme graph cuts, SAT/SMT, ACSP
    • Il y a aussi une discussion liée sur CS StackExchange
    • Certains le considèrent comme un problème NP-difficile, potentiellement dérivable de Sparsest Cut. Ils proposent de chercher un min-cut, d’ajuster les capacités, puis de répéter l’exploration
  • Chaque fois que je vois un domaine en horse, ça me donne envie de lancer traceroute bad.horse, et ça me fait sourire

    • Quelqu’un a répondu que cette blague était vraiment magnifique
  • On dirait que les défis quotidiens sont publiés à des heures différentes selon le fuseau horaire. Mon ami voit déjà le jour 9 alors que je n’ai encore que le jour 8.
    Ce serait bien d’avoir un horaire de publication identique dans le monde entier pour pouvoir rivaliser avec ses amis