[HN Gopher] enclose.horse
___________________________________________________________________
enclose.horse
Author : DavidSJ
Score : 1047 points
Date : 2026-01-06 06:01 UTC (17 hours ago)
(HTM) web link (enclose.horse)
(TXT) w3m dump (enclose.horse)
| lukebechtel wrote:
| Which came first -- the game or the domain name?
| sneak wrote:
| i have soooo many domains i've paid for for years that will now
| get sites because of the fact i can code at 10x+ now.
| cdelsolar wrote:
| i like how this was mildly downvoted for some reason
| hk__2 wrote:
| Generally the idea of the game, then the domain name, then the
| game.
| divbzero wrote:
| The game dynamic feels a bit like Wordle: One puzzle per day and
| different solutions that you can compare with others.
| roskelld wrote:
| Enjoyed that.
|
| Removing a block was a bit fiddly on FireFox (Floorp) due to the
| right click menu appearing when I tried to click on a tile.
|
| Looking forward to tomorrows!
| porphyra wrote:
| I thought so too at first but you can just left click to remove
| the wall actually.
| savolai wrote:
| I would like to be able to compare/switch optimal with my
| solution with single click.
| zimpenfish wrote:
| Side by side or a diff view would be great.
| rob001 wrote:
| I agree. Also, knowing the max score in advance would be
| better, so you know when to stop/whether to keep going.
| naedish wrote:
| I'm happy not knowing myself but the answer can be found
| easily in DevTools. All the max scores are there (for
| current and previous days only).
| merelysounds wrote:
| Same.
|
| I took a screenshot of my solution and the optimal one - and
| then I could compare like this.
| zem wrote:
| lots of fun! the fact that the walls spill over the square
| boundaries is very annoying though, i would love to have an
| option to just make a wall a filled in square without the 3d
| effect.
| fwipsy wrote:
| I expected the horse to move one tile for each block you placed.
| I had an elaborate plan to lure it towards one exit and then
| close it at the last minute... Nope!
| zimpenfish wrote:
| I did see a game recently which did that (you place a tile, the
| animal moves a tile, etc.) - possibly on itch.io. I'll see if I
| can dig it out.
| matsemann wrote:
| I remember a game I played on my phone ~15 years ago called
| "Greedy Spiders". The spiders would move greedily towards
| something every move, but you could cut strings in their web
| so they would have to start a new route. So you would kinda
| have to lure them into going one direction while slowly
| chipping away at the web, until you could completely cut them
| off or force them to have to take a longer detour giving you
| more time to cut more of the web. Quite challenging after a
| while.
| OscarCunningham wrote:
| There's an old Flash game called 'Chat Noir' where you have
| to trap a cat on a hexagonal grid. Here's a copy of it:
| https://www.hoodamath.com/games/chatnoir.html
| zimpenfish wrote:
| Ah, yes, the one I played recently was basically that
| (except it was a horse, I think.)
| netsharc wrote:
| A Windows 3.1 game called Rodent's Revenge:
| https://classicreload.com/win3x-rodents-revenge.html
|
| Video: https://www.youtube.com/watch?v=-r6CnPzTXKE
|
| Damn, the good old days when games didn't have loot boxes,
| ads, etc...
| Biganon wrote:
| John Conway studied similar problems
|
| https://en.wikipedia.org/wiki/Angel_problem
| roskelld wrote:
| I did Day 8 - I don't know if Perfect means I got the most
| optimal score, I do show up at the top of the graph.
|
| https://enclose.horse Day 8 PERFECT! 100%
| zimpenfish wrote:
| If you click on "View Optimal", it shows you the optimal
| solution which should be identical[0] to yours for "Perfect".
|
| [0] I'm assuming, possibly quite wrongly, that there's only one
| optimal solution per day.
| grodriguez100 wrote:
| I don't see any View Optimal button. Is it present in Mobile
| ?
| culi wrote:
| I don't see this button either (desktop) but searching the
| HTML gives a <script> that says
| window.__LEVEL__ = null; window.__DAILY_MODE__ = true;
| window.__DAILY_LEVELS__ = [{"id":"FswXDo","date":"2026-01-0
| 6","dayNumber":8,"optimalScore":86},{"id":"6UV4Yw","date":"
| 2026-01-05","dayNumber":7,"optimalScore":95},{"id":"VfWi_1"
| ,"date":"2026-01-04","dayNumber":6,"optimalScore":77},{"id"
| :"CNtGPI","date":"2026-01-03","dayNumber":5,"optimalScore":
| 116},{"id":"tnLvlG","date":"2026-01-02","dayNumber":4,"opti
| malScore":51},{"id":"Qn9vLs","date":"2026-01-01","dayNumber
| ":3,"optimalScore":74},{"id":"Kj7mXp","date":"2025-12-31","
| dayNumber":2,"optimalScore":90},{"id":"E03KkY","date":"2025
| -12-30","dayNumber":1,"optimalScore":68}];
|
| EDIT: the view optimal button appears after submission
| toxik wrote:
| Results, then scroll down a tiny bit.
| ryandrake wrote:
| Cool game, but I don't like how you get only one chance. Even
| returning to the page, you can't try again to beat your previous
| score. No replayability value at all.
| MrGilbert wrote:
| I disagree about the replayability aspect. It's a daily
| challenge, so come back tomorrow. I quite like it.
| bgbntty2 wrote:
| I seriously don't get the idea behind daily challenges unless
| you want to keep users hooked to extract some value from
| them, but that doesn't seem to be the case here, as there are
| no ads.
|
| Just show all the different levels at once.
| MrGilbert wrote:
| That's fine. So these kind of games aren't for you, then.
| Remember crosswords in newspapers? Yeah, think of it like
| that. You don't get hooked until you cannot let go, you get
| a limited chunk served each day. Same with Wordle.
| bgbntty2 wrote:
| I remember buying a magazine full of crosswords and
| similar puzzles when I was in the mood.
|
| And when there were sites with unlimited Wordle, I played
| a few in a row.
|
| On the internet, unlike with newspapers, you're not
| limited to how many levels/games you can make per day.
| Making it once per day doesn't make any sense whatsoever.
| It's condescending to the users and feels like a power
| trip.
| anonymous908213 wrote:
| You can freely make levels and browse other people's
| levels. The complaining about power trips seems as
| uncharitable a perspective as you could possibly conceive
| of, not to mention a bit theatric.
| rtgfhyuj wrote:
| so don't? others have said they like it, you don't, move
| on
| sunrunner wrote:
| > It's condescending to the users and feels like a power
| trip.
|
| condescending (adjective): having or showing an attitude
| of patronizing superiority.
|
| I don't really see how a once-a-day puzzle is
| condescending, unless it's a "You can't be trusted to
| regulate yourself so I'll do it for you" type thing.
| Adding a dictionary definition like above, however,
| probably _is_ condescending :)
|
| But I like the one-a-day format because, as other
| comments have said, you can spend an entire day with just
| one puzzle feeling important (relative to things that are
| important).
| Skeime wrote:
| I assume that "all the different levels" might not exist
| yet. The author is probably creating them a bit in advance,
| and will keep going as long as they're motivated. Having a
| regular schedule for new releases helps, and doing it daily
| seems as sensible as any other schedule.
| rbits wrote:
| If you click the menu button in the top right you can play
| all the past puzzles
| sfink wrote:
| > you want to keep users hooked to extract some value from
| them
|
| Ironically, that's what I initially liked about the daily
| puzzles like Wordle: they forcibly prevented you from
| sinking too much time into them. It was sort of like, "hey
| here's something cool, and I'm going to make sure it's a
| positive addition to your life by preventing you from
| succumbing to your own addictive impulses". You could call
| that condescending or infantilizing, but to me it's just
| part of the look and feel of a thing. Especially if the
| author isn't charging money, they get to use whatever tools
| are at their disposal to craft the users' experience of it.
| Wordle Over And Over Again is a _different game_ than
| Wordle Once Daily. (And WOAOA done properly would probably
| have a progression of difficulties, or themes, or
| something, whereas WOD makes more sense with pure
| randomness.)
| anigbrowl wrote:
| It shows you what the exit routes are, what your score will be,
| and you can move the gates around as long as you want, so the
| means of finding the maximum area are entirely within your
| grasp.
| sceptic123 wrote:
| But you have no idea what the optimal solution is, are you
| 1,10,50 away from it. Would be nice to have some indicator of
| how close you are before you submit, though I guess that's
| intentional.
| ryanjshaw wrote:
| I believe that's the point. I had the optimal solution for
| some time but was convinced there was something better.
| Eventually I submitted, and seeing the perfect score was
| more thrilling after convincing myself I was an idiot.
| butlike wrote:
| If it told you how close you were then you could just brute
| force your way to a perfect score every board by trying
| each square.
| klohto wrote:
| bruh it's like Wordle, come back tomorrow
| QuantumNomad_ wrote:
| You get one submit but you can press reset and find better
| solutions even though you can't submit it to the leaderboard
| geoffschmidt wrote:
| Click the sandwich icon in the top right, then either Past
| Puzzles or Browse, and you can play more puzzles. (Or even
| create and submit your own.)
| hombre_fatal wrote:
| The one shot per day provides a reason to sink your teeth into
| one board.
|
| I love Wordle but I found it unplayable when I used that Wordle
| archive site to play infinite games since there was no reason
| to think deeply about the 10th+ round I was playing in one
| sitting.
| zwnow wrote:
| You can just test without submitting though?
| matsemann wrote:
| You can just remove/change walls after having placed all. You
| see your current score, but can keep iterating.
| hn8726 wrote:
| Yes but it would be nice to see the targets, so you know how
| far off from an optimal solution you are. I know I'd spend
| more time looking for better solves if I knew the current one
| can be improved
| goodmatt wrote:
| Clear cookies?
| gs17 wrote:
| IMO they should have a (second) pop-up that warns you that you
| only get one submit. Not sure if it should let you know if
| you've made an optimal solution or not, but since it's not
| timed there's no cost in slowing people down. I've seen similar
| daily puzzles where you get to see the leaderboard and then can
| go back and optimize further. Yes, it says it at the beginning,
| but it's still easy to forget.
| kanemcgrath wrote:
| I am curious on how you would algorithmically find the optimal
| solution for this kind of problem for much bigger grids. I wanted
| to do some seed finding in Factorio for the same exact problem
| using the generated map images, but never found a good solution
| that was fast enough.
| Zobody wrote:
| Constraint programming seems to be a fitting approach. Input
| would be number of walls, and the location of lakes. The
| decision variables would be the positions of walls. In order to
| encode the horse being enclosed, additional variables for
| whether horse can reach a given square can be given. Finally,
| constraints for reachability and that edges cannot be reached
| should ensure correctness.
| Macuyiko wrote:
| Yes. CP SAT crunches through it in no time, but of course
| larger grids would quickly make it take much longer.
|
| See
|
| https://gist.github.com/Macuyiko/86299dc120478fdff529cab386f.
| ..
| ooopdddddd wrote:
| I don't believe this works in general. If you have a set of
| tiles that connect to neither the horse nor to an exit,
| they can still keep each other reachable in this
| formulation.
| Scaevolus wrote:
| Yes, this is the major challenge with solving them with
| SAT. You can make your solver check and reject these
| horseless pockets (incrementally rejecting solutions with
| new clauses), which might be the easiest method, since
| you might need iteration for maximizing anyways (bare SAT
| doesn't do "maximize"). To correctly track the flood-fill
| flow from the horse, you generally need a constraint like
| reachable(x,y,t) = reachable(nx,ny,t-1) ^ walkable(x,y),
| and reachable(x,y,0)=is_horse_cell, which adds N^2
| additional variables to each cell.
|
| You can more precisely track flows and do maximization
| with ILP, but that often loses conflict-driven clause
| learning advantages.
| Macuyiko wrote:
| Good point. I don't think the puzzles do this and if they
| would, I would run a pre-solve pass over the puzzle first
| to flood fill such horseless pockets up with water, no?
| ooopdddddd wrote:
| It's not quite that easy. For the simplest example, look
| at https://enclose.horse/play/dlctud, where the naive
| solution will waste two walls to fence in the large area.
| Obviously, you can construct puzzles that have lots of
| these "bait" areas.
|
| Like the other comment suggested, running a loop where
| you keep adding constraints that eliminate invalid
| solutions will probably work for any puzzle that a human
| would want to solve.
| Scaevolus wrote:
| The site uses Answer Set Programming with the Clingo engine to
| compute the optimal solutions for smaller grids. Maximizing
| grids like this is probably NP-hard.
|
| Note that traditional SAT and SMT solvers are _quite_
| inefficient at computing flood-fills.
|
| The ASP specifications it uses to compute optimal solutions are
| surprisingly short and readable, and look like:
| #const budget=11. horse(4,4). cell(0,0).
| boundary(0,0). cell(0,1). boundary(0,1). %
| ...truncated for brevity... cell(3,1). water(3,1).
| % ... % Adjacent cells (4-way connectivity)
| adj(R,C, R+1,C) :- cell(R,C), cell(R+1,C). adj(R,C,
| R-1,C) :- cell(R,C), cell(R-1,C). adj(R,C, R,C+1) :-
| cell(R,C), cell(R,C+1). adj(R,C, R,C-1) :- cell(R,C),
| cell(R,C-1). % Walkable = not water
| walkable(R,C) :- cell(R,C), not water(R,C). %
| Choice: place wall on any walkable cell except horse and
| cherries { wall(R,C) } :- walkable(R,C), not horse(R,C),
| not cherry(R,C). % Budget constraint (native
| counting - no bit-blasting!) :- #count { R,C : wall(R,C)
| } > budget. % Reachability from horse (z =
| enclosed/reachable cells) z(R,C) :- horse(R,C).
| z(R2,C2) :- z(R1,C1), adj(R1,C1, R2,C2), walkable(R2,C2), not
| wall( R2,C2). % Horse cannot reach boundary
| (would escape) :- z(R,C), boundary(R,C). %
| Maximize enclosed area (cherries worth +3 bonus = 4 total)
| #maximize { 4,R,C : z(R,C), cherry(R,C) ; 1,R,C : z(R,C), not
| cherry( R,C) }. % Only output wall positions
| #show wall/2.
| stabbles wrote:
| Nice, you don't see clingo mentioned often. We use it in the
| Spack package manager for resolving dependencies [1]
|
| [1] https://github.com/spack/spack/blob/develop/lib/spack/spa
| ck/...
| freakynit wrote:
| Im over 35 years of age. I have 15+ years of programming
| experience. And I generally consider myself as someone who
| has good breadth of tech in general. Yet, this is the first
| time in my life I've heard of ASP. And gosh. I was completely
| blown away by this as I read more about it and went through
| some examples (https://github.com/domoritz/clingo-
| wasm/blob/main/examples/e...)
|
| Therefore, like a good little llm bitch that I have become
| recently, I straight away went to chatgpt/sonnet/gemini and
| asked them to compile me a list of more such "whatever this
| is known as". And holy cow!! This is a whole new world.
|
| My ask to HN community: any good book recommendations related
| to "such stuff"? Not those research kinds as I don't have
| enough brain cells for it. But, a little easier and practical
| ones?
|
| Thanks..
| ctxc wrote:
| Has to be my favourite comment, haha!
| Scaevolus wrote:
| The pre-machine-learning formulations of AI focused on
| symbolic reasoning through the dual problems of search and
| logic. Many problems can be reduced to enumerating legal
| steps, and SAT/SMT/ASP and related systems can churn
| through those in a highly optimized and genetic manner.
| freakynit wrote:
| Thanks... noted a few keywords to expand on further:
|
| 1. Symbolic reasoning
|
| 2. SAT/SMT/ASP
|
| 3. pre-machine-learning formulations of AI
| sfink wrote:
| "Logic programming"[0] is what I've always heard this
| stuff called. I was introduced to it with Prolog.
|
| "Declarative programming"[1] is kind of a superset of
| logic programming, which may or may not be the aspect
| that piques your interest.
|
| "Constraint programming"[2] and "Constraint logic
| programming"[3] are also a perspective on it.
|
| [0] https://en.wikipedia.org/wiki/Logic_programming
|
| [1] https://en.wikipedia.org/wiki/Declarative_programming
|
| [2] https://en.wikipedia.org/wiki/Constraint_programming
|
| [3] https://en.wikipedia.org/wiki/Constraint_logic_progra
| mming
| tgamblin wrote:
| The more recent Lifschitz book is the easiest to learn from
| IMO:
|
| - https://www.cs.utexas.edu/~vl/teaching/378/ASP.pdf
|
| It starts with basics of using ASP and gives examples in
| clingo, not math.
|
| The Potassco book is more comprehensive and will help you
| understand better what is going on:
|
| - https://potassco.org/book/
|
| Things I don't like include that it's more dense, doesn't
| use clingo examples (mostly math-style examples so you kind
| of have to translate them in your head), and while the
| proofs of how grounding works are interesting, the
| explanations are kind of short and don't always have the
| intuition I want.
|
| I still think this is the authoritative reference.
|
| The "how to build your own ASP system" paper is a good
| breakdown of how to integrate ASP into other projects:
|
| - https://arxiv.org/abs/2008.06692
|
| The Potassco folks are doing amazing work maintaining these
| tools. I also wish more people knew about them.
|
| EDIT: I forgot to mention that specifically for games stuff
| like enclose.horse, look at Adam Smith's Applied ASP Course
| from UCSC:
|
| - https://canvas.ucsc.edu/courses/1338
|
| Forgot to mention that one... we use clingo in Spack for
| dependency solving and other applications frequently slip
| my mind.
| johanvts wrote:
| I think it's NP hard, maybe from Sparsest Cut. But you could
| probably find the min-cut and then iterate by adding capacity
| on edges in the min cut until you find a cut of the right size.
| (if the desired cut-size is close to the min cut size at
| least).
| emil-lp wrote:
| It's NP-hard from Minimum s-t Cut with at least k Vertices.
| That's the edge version, but since the grid graph is
| 4-regular(-ish), the problem is trivially convertible to the
| vertex version.
|
| _Edit:_ apex-4-regular
| qwertyforce wrote:
| I think there should be some graph algorithm for this, to find
| a bottleneck in a graph
| sunrunner wrote:
| > algorithmically find the optimal solution for this kind of
| problem for much bigger grids.
|
| Great, now I've been double nerd-sniped - once for the thing
| itself and another for 'What would an optimiser for this look
| like? Graph cuts? SAT/SMT? [AC]SP?'
| qsort wrote:
| I'd bet it's NP-hard. The standard reduction to a flow
| problem only tells you if a cut exists (by min-cut max-flow
| duality), but here we want the cut of size at most N that
| maximizes enclosed area.
|
| The Leetcode version of this is "find articulation points",
| which is just a DFS, but it's less general than what is
| presented here.
| emil-lp wrote:
| There's probably an FPT algorithm using important separators
| (4^k).
| emil-lp wrote:
| Someone asked about this very problem here:
|
| https://cs.stackexchange.com/questions/176005/how-to-remove-...
| 29athrowaway wrote:
| A good game. Possibly the 2048 of 2026.
| jerbearito wrote:
| Very fun
| valleyer wrote:
| Nice. Reminds me of Rodent's Revenge.
| gorgoiler wrote:
| Great game, I love it! I hope the author is collecting juicy
| analytics. They would be useful if they ever want to bundle 100
| levels in order of difficulty and release this as a Steam game
| (which I would absolutely buy!)
|
| I don't think the gates should animate up into the air. It breaks
| the visual logic of 2D for no benefit. It's subconsciously
| confusing to see a gate I place in one cell move to occupy pixels
| in the cell "above" it.
|
| I look forward to future days introducing new mechanics as well.
| Can I suggest a few, based on dynamics?
|
| - Food! The horse moves on every turn towards an attractor. Have
| a hay bale / giant sugar cube in one corner fall off the back of
| a truck / helicopter :) Horses start out dumb and move directly
| towards the goal before backtracking. Smarter horses path find
| the shortest route to the goal.
|
| - Goals! Now that the horse is moving, get the horse into a
| static horse box / cattle pen cell by strategically placing
| fences so that the path it takes towards the food involves
| walking onto the goal square.
|
| - Floods! Water encroaches from the edges on a turn by turn
| basis. Not only do you have to contain the horse, you also have
| to hold back the flood.
| cubefox wrote:
| > I don't think the gates should animate up into the air.
|
| I think it should go up, otherwise it doesn't look like a wall.
| It would look like something the horse can step on and run
| over. For the water it makes sense to be flat flat and that the
| horse doesn't want to touch it: it is water-shy.
| stevage wrote:
| To me the current design doesn't look like anything at all. I
| don't see a gate or a wall, just two rectangles.
| snewman wrote:
| +1 to this. It's also visually confusing, the gate looks
| like it's covering two cells.
|
| Great game! Feature request: add a button that shows my
| submitted solution. I'd like to be able to compare it with
| the optimal solution (so it'd be nice if a single tap could
| toggle between my submission and the optimal).
| ianstormtaylor wrote:
| It would be nice if the "optimal" view visualized both my
| solution and the optimal one at the same time, like a
| Venn diagram.
| layer8 wrote:
| It also conceals the cherries when it's on the field below
| them.
| emregucerr wrote:
| > I don't think the gates should animate up into the air.
|
| I agree! It feels off compared to the overall aesthetic of the
| game.
|
| Awesome game though! Loved it.
| doctordoctor2 wrote:
| IMO, the game is great to keep simple, but I'd like to play
| more levels than just daily, so could see people paying for the
| ability to play more, like NYT games, and could be part of a
| suite of game if curated daily by expert vs social curation.
| The blocks are small though for a small phone with big fingers.
|
| I also wonder if making it GPL and submitting to various *NIX
| distros would be best. Then it may need to be standalone with
| random maps created by ML or similar.
| maartin0 wrote:
| It has a very pleasant editor to make + share custom maps,
| e.g. https://enclose.horse/play/a3OGcW
| 47282847 wrote:
| You can play the previous days and hundreds of user
| contributed maps! Check out the menu. Enjoy :)
| webstrand wrote:
| Ah I did not see the menu at all
| oliwary wrote:
| Another thing to try could be to rank people in realtime
| instead of the one-off submission approach. I do this in
| https://spaceword.org (create tight crosswords using 21
| letters), and I think it's quite motivating to see how you
| compare to others as you improve your solution. On the other
| hand, its a bit more taxing on the server, and then you also
| could not show the optimal solution.
| michaelmior wrote:
| Cool game! One minor feature request. It would be helpful to
| have some way to move the entire block of placed tiles around
| at once to give myself more room in a particular direction.
| oliwary wrote:
| Thank you! :) If you click the three dots on the left top
| side of the letters area, you can shift all tiles in a
| direction.
| layer8 wrote:
| I would prefer not being distracted by that, and not having
| information on possible solutions before submitting. Trying
| to find the best solution with added hints like that is a
| different game. So it should be opt-in.
| anticorporate wrote:
| > I hope the author is collecting juicy analytics.
|
| I hope they're not. Can't we have a few things in this world
| that are just fun without going and sticking surveillance on
| them?
| snackdex wrote:
| if the analytics lead to an actual game on steam im down
| butlike wrote:
| You could just package an arbitrary 100 levels, let the
| player play them in any order, then give rewards for 10,
| 20, 30, 40, etc. levels completed/mastered.
| Feathercrown wrote:
| This would still benefit from a difficulty rating system
| or order
| Forgeties79 wrote:
| Or go full on kaizo Mario and make it a random room out
| of the 100
| snackdex wrote:
| naw im looking to have fun, not cry
| snackdex wrote:
| something in me loves progressively harder levels
| BloodyIron wrote:
| Collecting analytics like this is effectively the same as
| play-testing physical board games in-development. People play
| a game, information is gathered, and the game is tuned in
| response to that. If zero information were ever gathered,
| games could not be balanced or tuned for other things like
| unforeseen problems.
|
| Please, show me a piece of software, or game, that is perfect
| the first time it is made.
| wat10000 wrote:
| It's effectively the same, except people volunteer or are
| paid to play test.
|
| This whole industry really needs a lesson on consent.
| adventured wrote:
| So long as personal information is not collected, consent
| is not morally necessary.
|
| If I collect information on how often a coin-op Street
| Fighter II game is played in an arcade, while collecting
| no personal information, consent is not needed.
| wat10000 wrote:
| Because using someone else's hardware in a public space
| is clearly equivalent to using your own hardware in the
| privacy of your own home.
| crazygringo wrote:
| This is software coming from a server, not hardware. It
| doesn't matter which device it's run on, or whether it's
| in your home or not.
| Zetaphor wrote:
| You are not entitled to play the game, which is hosted on
| their server which requires bandwidth and other
| resources. In the same way that you are free to make
| demands about how software runs on your machine, the
| author is free to make demands about the use of their
| software.
| Sardtok wrote:
| If the data gathered is only on gameplay, and not
| something that can be used as PII like IP addresses or
| device information, then it should be fine. Gathering
| things like the score and time spent completing the
| level, isn't a problem. This could be used to rank the
| levels, without gathering any user information.
| wat10000 wrote:
| If gathering the data should be fine, then asking for
| permission should also be fine.
| BloodyIron wrote:
| There are games that let you opt-out, hell even ones that
| ask you when you first open the game. There are bad
| apples, but there are plenty of good ones too.
| jader201 wrote:
| I think the argument is that they shouldn't be opt-out,
| but opt-in.
|
| If I want to play a game and provide my feedback, the
| default should be that that doesn't happen unless I
| explicitly say it should.
|
| Opt-out means that, by default, you're collecting metrics
| from my plays, until I find the means to opt-out.
| llmslave2 wrote:
| If the game asks you when you first open it, does it
| matter if the question is to "opt out" or "opt in"?
| wat10000 wrote:
| If it asks you then it's neither opt-in nor opt-out. Then
| it depends on how it asks you. If it's a simple yes/no,
| it's fine. If it's typical tech bullshit where your
| options are a big "I want to make the world a better
| place and save the whales by sending my data" or a tiny
| button in the corner labeled "maybe later" that takes you
| to another screen saying "please confirm you want to opt
| out of data collection and kill a bunch of kittens" then
| not so good.
| helle253 wrote:
| 'analytics' and 'surveillance' are not the same thing
|
| trying to understand player behavior in the context of a
| board or video game (though there is some overlap!) is not
| the same as trying to understand user behavior in the context
| of social media or purchasing behavior - the data of both of
| which derive their value from being sold to THIRD PARTIES as
| a commodity.
|
| being able to tune a fun little video game is not the same
| thing at all
| badtuple wrote:
| Does your opinion change if they use it to train a
| commercial program to do a similar task?
| alpha-male-swe wrote:
| yeah man what a horrible world we live in man. thats so
| profound of you to say, truly. well said man
| gwbas1c wrote:
| Sometimes simple things are best. I really like the game as-is.
|
| This is a rather simple game to program. IMO, if you can
| program, take a few weekends to make your own game based on
| your ideas. If you can't program, your ideas will lead you to a
| wonderful learning project.
| xg15 wrote:
| > _I don't think the gates should animate up into the air. It
| breaks the visual logic of 2D for no benefit. It's
| subconsciously confusing to see a gate I place in one cell move
| to occupy pixels in the cell "above" it._
|
| I interpreted it as standard "top-down" RPG graphics, where the
| Y axis always doubles as the Z axis. As such, I didn't find it
| visually confusing - but it did made playing on mobile
| annoying, because you often end up targeting the wrong field.
| xg15 wrote:
| And of course: Buy additional walls using in-game purchases!
|
| (jk)
| tgtweak wrote:
| There is definitely a turn-based minigame here - get the most
| "distance" travelled by the horse, every turn the horse moves
| one block towards it's closest escape and you can drop walls to
| cause it to find a new path - in this one you actually lose
| when the horse can't get out but the goal is to get the horse
| to move as many blocks as possible using your limited number of
| walls (or apples which can attract it).
| mbreese wrote:
| I was initially expecting the horse to move after each turn.
| As it is, this is a logic game, similar to what I'd expect to
| see in the NYT Games app. Quite entertaining, but something
| that you could look at and reason about to solve.
|
| But, you absolutely could make this a turn based game where
| the horse is trying to escape and you (playing as the
| farmer), work to fence it in as it meanders towards a gate.
| dllu wrote:
| That reminds me of Paquerette Down the Bunburrows [1] which
| is a very fun pathfinding game where the bunnies will
| pathfind to try to run away from you. It's not exactly what
| you described, but it is very fun and surprisingly deep and
| challenging.
|
| [1] https://store.steampowered.com/app/1628610/Paquerette_Dow
| n_t...
| nirolo wrote:
| Very cool game. Immediately reminded me of pathery, which I can
| also recommend to everyone who enjoys this.
| g0ran wrote:
| Seeing tile animations immediately reminded me of Godzilla 2: War
| of the Monsters on NES.
| menzoic wrote:
| Leetcode problem
| abhi555shek wrote:
| Nice game! I could only play one game but wish I could play
| previous days' games as well
| wseqyrku wrote:
| You can. Checkout the Past Puzzles in the menu (top-right).
| n4r9 wrote:
| Nice game! Out of curiosity, are the daily levels built by hand
| or algorithmically? Is there some way to measure their difficulty
| computationally, other than just trying to do it yourself or
| seeing how many people get a perfect score? I'm also working on a
| grid-based browser game and both those questions have come up for
| me, I'm keen to see how other people tackle it.
| pests wrote:
| There is a built in map editor, click the hamburger menu.
| dvh wrote:
| > Horses can't move diagonally or over water.
|
| Ah the famous spherical horse in vacuum
| niemandhier wrote:
| This is surprisingly similar to a subset of the ARC II puzzles.
|
| The collected answered could probably be used to teach an AI to
| approach this type of problem thereby gaining some of the
| cognitive biases that humans have, which is exactly what you want
| in some cases: An AI that generates human like solutions to hard
| problems .
| rob001 wrote:
| This is a very cool and enjoyable game. I'd be really interested
| in knowing what framework/library was used to make it. I
| inspected the source and can see the game is done on canvas, but
| can't work out more than that.
| Retr0id wrote:
| I wouldn't be surprised if they're just rawdogging the canvas
| API
| daneel_w wrote:
| The canvas API itself is pretty basic. It's not complicated at
| all to slap graphical tiles onto the screen.
| posed wrote:
| I enjoyed it, thanks for making it!
| langarus wrote:
| lovely, I've created a solution finder for it.
|
| 1. Do a screenshot of the grid (try to include walls as well)
|
| 2. Open https://enclosure-horse-solution.onrender.com/
|
| 3. Make sure the number of walls are correct in the input (bottom
| left)
|
| 4. Press "Solve"
|
| PS: It might crash as it's on the free version of render. I've
| added a caching layer.
|
| Here's the github so you can run it locally:
|
| https://github.com/langarus/enclosure.horse-solution
|
| clone it and run
|
| make init // make web
| langarus wrote:
| I see some of you are already crashing the server. :melting:
| try to run it locally if you can't get the result via render
| ronbenton wrote:
| You caching in memory or disk? Redis or db might survive the
| crashes and reduce future ones
| langarus wrote:
| on disk, so basically I'm trying to save the image of a
| solution and reuse it if the same quiz is required. So
| instead of recomputing the result just return the same image.
| ronbenton wrote:
| Got it. Is that cache surviving the crashes?
| langarus wrote:
| I'd have to host it somewhere (s3?). Right now I only
| commit the solution png to github. OFC it's not a good
| option but it's free and fast.
| ronbenton wrote:
| I think Cloudflare r2 has a generous free tier. You can
| also technically store images in redis I think. anyways,
| thank you for making this, really cool!
| slashyellow wrote:
| curious question from a non-programmer - are you checking
| against the exact same image (i.e. hashed), or is there an
| easy way of trying to match an image to a very similar one
| you've seen before?
| flexagoon wrote:
| Not OP, so I don't know what their website does, but
| there is a technique called "locality-sensitive hashing"
| that gives the same hash for similar items instead of
| exactly the same ones
|
| https://en.wikipedia.org/wiki/Locality-sensitive_hashing
| g4zj wrote:
| There is a level editor with the ability to show the optimal
| result for a custom level. In theory, one could recreate any
| official level and reveal the best solution that way. However,
| I haven't tried this to verify any intentional roadblocks by
| the developer.
| rhymemini wrote:
| Score init should say N/EIGH instead of N/A, otherwise great.
| ronbenton wrote:
| Reminds me of a comic I saw a couple years back about a horse
| parliament where the horses only voted "neigh"
| _1 wrote:
| That's from the Far Side. My mom has had this on her fridge
| for at least 30 years.
| inanutshellus wrote:
| This appears to be it. :)
|
| https://i.pinimg.com/736x/4f/51/e0/4f51e04263a89a008e29668b
| 7...
| snackdex wrote:
| dead. how in the world does a thought like that come into your
| mind. i feel like i got 0 in creativity
| keepamovin wrote:
| I imagine you went searching for domain names and came up with
| this? I resisted clicking on this top story all day because I
| thought "how good could _that_ be? "enclose horse" what is
| that?" Yet, the experience was genuine-slow-forming-smile-of-
| understanding. This is really good.
| adonovan wrote:
| I think you should change the cherries to a battery and call the
| game Correct Horse Battery Stable.
| MildlySerious wrote:
| That is just delightful.
|
| Reference[1] for anyone wondering.
|
| [1] https://xkcd.com/936/
| gwern wrote:
| Or the cherries could be a delicious pastry or PBJ-like treat:
| _Collect Horse Buttery Stable_...
| layer8 wrote:
| Use staples instead of walls as barriers.
| tetris11 wrote:
| Or turn the cherries into sugar lumps, and call the game _My
| Lovely Horse_
| lionkor wrote:
| I found the optimal solution for day 8 by hand, that was fun!
|
| My algorithm, by hand, was as such:
|
| 1. Start with the smallest possible valid solution (1)
|
| 2. Expand slowly, and each "step" (like, moving a wall or two
| around to "obvious" spaces) must be a valid solution (this brings
| you to 40-60 score, depending on your choices, on day 8).
| Continue to step 3 once you can't see anything obvious.
|
| 3. Look at possible places where you could expand, but need 1
| more block. You'll find one eventually.
|
| 4. See if you can spare any walls anywhere, using diagonals for
| example. If so, place the solution from 3 and go to 3 (repeat).
| If not, go to 5.
|
| 5. Count or estimate the squares gained by doing your improvement
| from 3. See if you can _reduce_ your score by less than that,
| pessimizing your solution, to gain 1 wall. Once you 've found
| one, go to 3.
|
| That got me to the optimal score within 15 mins or so.
| ChrisbyMe wrote:
| I found the same algorithm! The top down solution didn't really
| work.
|
| Very fun game
| sambuccid wrote:
| This feels strangely similar to TDD with the Tranformation
| Priority Premise
| sandyarmstrong wrote:
| Is there guaranteed to be a solution that encloses the cherry? Is
| Day 8 the first day to have a cherry?
| zwaps wrote:
| Which AI am I training here?
| naedish wrote:
| A very fun game - it took quite a bit of fiddling to get an
| optimal solution using an LLM. Interesting as I haven't tried
| using them for 'unique' algo problems much. And then the day 9
| puzzle broke my original solver (I had bounded areas that were
| unreachable to the horse so didn't actually score). Will be
| interesting to see whether the solver works on day 10.
|
| It would be interesting to be able to change the wall budget for
| each puzzle to add some variation (with a max limit).
| scrumper wrote:
| This is nice, I enjoyed it. Was a couple points off the optimal
| score for day 8 but when I clicked "Show optimal" I couldn't then
| go back to see mine to compare. Either way, stretched the brain a
| bit.
|
| Only nit: fix the walls. They take up one and a half spaces so
| are confusing, and they're sci-fi steel with flashing red lights.
| Turn them into one-square-only fences. You use fences to enclose
| horses, not raptor walls from Jurassic Park.
| xg15 wrote:
| I mean, the horse does sometimes talk about the demon god if
| you click on it, so who knows...
| Groxx wrote:
| Yeah, it needs to add a toggle button to let you switch between
| yours and optimal quickly.
|
| I did figure out that you can get back to yours by going
| through the past-days menu though.
| xp84 wrote:
| This is my feedback too. Turn "show optimal" into a toggle that
| persists on the page and toggles between yours and the optimal.
|
| And same about the walls. Especially on mobile it's hard enough
| to tap the right square, and having a wall poking up from the
| square below just makes things worse.
|
| But overall I love the game!
| Arubis wrote:
| Each time I see a `horse` domain, particularly for entertainment,
| I remember to `traceroute bad.horse` and smile again.
| ZeWaka wrote:
| lmao, this is beautiful
| xg15 wrote:
| Looks like some people have discovered the first "accidental"
| game mechanic: The horse can walk over cherry fields, but the
| player cannot place walls on them - so if a level designer places
| cherries strategically, they can create unblockable paths.
|
| Right now, this is only used for troll levels, but I wonder if
| you could also use it for some actual puzzles.
| xg15 wrote:
| I'm pretty sure the author got the domain first and then designed
| an (awesome) game around it.
| arthurjj wrote:
| My 10 year old loves this game. He started playing it Wednesday
| or Thursday of last week and basically all of his screen time.
| Both trying to optimize and the level design scratch an itch that
| few games do
| grugdev42 wrote:
| Love this! I feel like this would get a lot of traction as a
| mobile app. It's a perfect "I've got five minutes free" game.
|
| Doesn't feel outrageously difficult to put inside a webview?
| nickponline wrote:
| I think this problem is called the maximum-weight closure and can
| be solved as max flow. You want to find a cut between source
| (horse) so they were no out-going edges not in the cut (escape
| routes).
| emil-lp wrote:
| It's not the same problem. First, it's not directed, second
| it's a vertex separation problem.
| nickponline wrote:
| Ah yes quite right.
| alexjplant wrote:
| Fantastic fun! My humble level contribution is here [1].
|
| [1] https://enclose.horse/play/44wCCO
| DonThomasitos wrote:
| I love it! I miss a way to see the reference solution, would be
| nice in order to learn. Or maybe get a hint.
| atticus_ wrote:
| https://enclose.horse Day 8 PERFECT! 100%
| sambuccid wrote:
| I want a tool that visualizes code paths in this way
| Narushia wrote:
| Happy Year of the Horse!
| sublinear wrote:
| Fun game, but the animation style is too distracting for me.
| Maybe there should be an option to disable it or have it stop
| automatically.
|
| I didn't initially expect it would be a problem, but the constant
| squiggly movement gets very annoying.
| croemer wrote:
| I didn't realize level 1 gave me 11 (eleven) walls at first. I
| thought it stood for II = roman 2. Maybe use a font that makes
| the difference between 1 and I clearer.
| DuncanCoffee wrote:
| Nice game, I'm going to sink some time on these! Got 86 points
| today
|
| https://enclose.horse Day 8 PERFECT! 100%
| DougN7 wrote:
| Wow, that's a lot more challenging than it looks. I agree with
| another commenter that the 3d blocks look confusing - they appear
| to cover two spaces.
| theo1996 wrote:
| I dont understand what is the goal of this game
| pests wrote:
| Enclose the horse. Horse likes most space.
| godisdad wrote:
| Looking forward to the AI enabled subscription version
| Lammy wrote:
| It's like ChuChu Rocket! + JezzBall; two of my favorite games!
| MagicMoonlight wrote:
| This is a really fun game. And I just realised you can make your
| own levels!
| komodo99 wrote:
| Usability, i'd like either a 'save/restore state' button, or a
| 'restore current best'. Right now, experimenting after finding a
| solution seems like a punishment if I can't recall exactly what I
| did to hit my rolling 'best'. Good game though!
| abetusk wrote:
| There is a button that restores your best, it's right under the
| current score.
| wirtzdan wrote:
| So fun!
|
| I wonder how the wiggle animation is implemented in for the
| buttons and modal.
| Aardwolf wrote:
| Nice puzzle! But I'd like a button to go back to your most
| optimal solution so far: it's tedious to try other options but
| then have to convert it back to your better solution again...
| xp84 wrote:
| There is one! Or maybe dev is just that fast. Tap where it says
| "Best: 67" and it reverts to previous best.
| zachallaun wrote:
| Ton of fun! Was interesting to see how my strategy evolved as
| well. I started out trying to make a large pen, but quickly
| realized that wouldn't work, so I made a small pen and then
| started moving it out. This allowed me to see individual
| optimizations and try alternatives. Even at the end, about to hit
| submit, I wasn't sure my solution was optimal, but ended up with
| the optimal sizse-86 solution for today's challenge. Will try
| again tomorrow!
| athrowaway3z wrote:
| Great little game. For the community levels, I'd suggest adding
| filters based on size & walls.
|
| I'd even go so far as to deny any submission with more than
| sqrt(size) walls.
| hotsalad wrote:
| Does each day's challenge come out at a certain time in your
| local timezone? I have a friend who is seeing day 9 when I can
| only see day 8. I'd request having new daily maps come out at a
| consistent global time for the purpose of competing with friends
| who live in different timezones.
| genekwame wrote:
| Raaarrrhh. Perfect solution yesterday, perfect solution today!
| I'm really on a roll lmao. Love it
| genekwame wrote:
| Raaarhh. Perfect solution yesterday, perfect solution today! I'm
| really on a roll. Love love the game
___________________________________________________________________
(page generated 2026-01-06 23:09 UTC)