Cozy Puzzle
Harvest Table
A seating puzzle for the holiday table: every guest has a few visible wishes, and you find the seating that makes the most of them come true.
What you do
A cozy Thanksgiving seating puzzle set in a farmhouse dining room at the end of an autumn afternoon. You are the host. Grandma Rosa the rabbit, Uncle Bram the raccoon, Cousin Hattie the hedgehog and eleven more animal guests come to dinner with a few wishes each, shown as little picture bubbles beside them: sit beside a friend, across from another, near the pie, away from the cranberry sauce, or at the end of the table. Every wish that comes true earns a heart, and faces light up as you seat people. Nothing is hidden, so this is a puzzle of weighing choices, not of guessing: one happy pairing can cost another guest a wish, and the best seating is rarely the most obvious one. Each dinner shows its par, the most hearts its table allows. From the tenth dinner you also set out the dishes yourself, so where the turkey goes changes who is happy. There are 24 dinners, from a table for four to a long table for ten, plus a new dinner every night.
How to play
- Press Start hosting on the title card. Dinners 1, 2 and 4 are lessons, and a short line from the coach explains each new idea when it first appears. Each dinner you serve opens the next, and tonight's dinner is open from the start.
- Guests wait on the benches. Every guest has one to three wishes, drawn as bubbles beside them. Tap or hover over a guest to read their wishes in words.
- A wish that comes true earns a heart. A guest can wish to sit beside someone, not beside someone, across the table from someone, near a dish, not near a dish, or in an end seat. The hearts and par are shown at the top.
- Beside means the next seat along the same side, and an end seat is beside the two corner seats at its end. Across means the seat straight over the table. A dish on the runner reaches the places on both sides of its gap, on both sides of the table, and the end seat at that end of the runner.
- Some dinners leave empty trivets on the runner: set out the dishes from the sideboard on them. Where a dish goes decides who sits near it.
- Serve the dinner once every seat is filled and every dish is out. Par earns three ribbons, one heart below par two, and any full table one. Rearrange on the results card takes you back to the served table to try for more.
Controls
- Mouse and touch: drag a guest to a seat, or tap a guest and then a seat. Dropping on a seated guest swaps the two. Tap a seated guest to pick them up again, then tap another seat to move or swap, or the bench to send them back. Dishes work the same way.
- Keyboard: Tab or the arrow keys move between guests, seats, trivets and the sideboard. Enter picks up and places, Delete sends a guest back to the bench, Escape puts down what you hold, Z undoes and H asks for a hint.
- Buttons beside the table: Dinners opens the list of dinners, Undo takes back the last move, Clear sends everyone back to the bench, Hint explains one move and Do it makes it, and Serve starts dinner.
- Toolbar: pause, help, restart (sends everyone at the dinner on screen back to the bench, and Undo brings the seating back; ribbons and open dinners are never touched), optional sound and fullscreen.
Tips worth knowing
- Start with the guests who want the most specific thing, such as an end seat or a seat across from one named friend, then seat their friends around them.
- The most obvious pairing is often not the best one. If a happy pair costs a third guest two hearts, try the pair apart.
- Not-beside wishes are the easiest to break by accident. Check them last, once the neighbors are settled.
- Try a seating and watch the hearts before you commit. Undo takes back any move, as many times as you like.
- If you are one heart short of par, swap two guests and watch the counter. Dropping a guest on a seated guest trades their places in one move.
Accessibility
- Everything can be played with a keyboard: Tab or the arrow keys move between bench places, seats and trivets, and every button is reachable with Tab.
- There is no timer and no move limit.
- Every guest is a different animal in its own colors, and every dish has its own shape. The tip line spells each wish out in words, and a hidden spoken summary gives the hearts, the seated guests and par.
- Every move is announced to screen readers. Reduced motion drops the walking and passing dishes but keeps the hop, the puff and the heart counter.
- Sound is optional and never needed to play.
Questions
Can every dinner reach par, and what is par?
Yes. Par is the most hearts any seating can earn, worked out by an exact search over every seating and every way of setting out the dishes, and a seating that earns it is stored with each dinner. The game's checks confirm the search against a brute-force count on the smaller tables. Outside the lessons, simply seating each guest where they gain most right away falls short of par, so you have to plan.
How do hints work?
The first press of Hint says which move gets you closer to the best seating and lights the places involved. Pressing Do it makes the move. Using a hint caps that dinner at two ribbons. Clear the table to lift the cap and seat it on your own for three, or Undo the Clear to bring back the hinted table.
What does Harvest Table save?
On this device: which dinners are open, your most hearts and ribbons on each dinner, tonight's result, and the table of every dinner you have started, so it comes back after a reload. Last night's dinner in progress is dropped when the date changes. Restart in the toolbar starts the dinner on screen over and never touches your ribbons or open dinners. If the browser blocks storage, the game still plays but cannot remember anything, and it says so.