Naptuft
Care for a little cat, follow their wishes, and build a cosy streak.
Goal
Care for one little cat for as long as you choose by balancing four visible needs: food, joy, cleanliness, and energy. A day contains 12 care moments in three 4-moment windows. Each window has a visible ordered Little wish and household pressure, and the full current day plus the next window are forecast. Follow wishes when it is safe, maintain every need, and choose END_RUN at any time to bank the score. After a surviving day, choose NEXT_DAY to continue or END_RUN to bank. There is no last day and no action horizon; a run ends naturally if a need reaches zero or voluntarily when END_RUN is chosen.
Scoring
Higher is better and the score is never capped by the engine. A care action scores the amount it actually restores before decay, from 0 to 36. If every post-decay need is at least 40, add 10. Completing a visible wish in order adds 60 times its length times the wish multiplier. The multiplier is 1 for the first consecutive completed wish, 2 for the second, and capped at 3 from the third onward; an incomplete wish expires after its fourth moment and resets the next multiplier without removing points. A surviving twelfth moment with every need at least 30 adds 120. A fatal care action keeps only its actual restoration points and suppresses comfort, wish, and day bonuses.
Rules
Send exactly one of { "type": "care", "care": "feed" | "play" | "brush" | "nap" }, { "type": "next-day" }, or { "type": "end-run" }. Feed restores food, Play restores joy, Brush restores cleanliness, and Nap restores energy by up to 36, clamped at 100. After restoration, every need loses 6 plus its visible household modifier, with total loss capped at 8. A need reaching zero ends the run after its care points are kept. Wishes contain distinct actions and advance only when the next requested care is chosen; unrelated valid care can be inserted without penalty. From Day 7 onward, the immediately previous care cannot be repeated, including across a day break. Rejected actions spend no moment and change nothing. During active play, legal actions are the legal care choices plus END_RUN. At a day break, only NEXT_DAY and END_RUN are legal. NEXT_DAY gives no restoration or points. An ended state has no legal actions and is stable. The observation exposes the same meters, current wish, current-day forecast, next window, position, and score available to a human player, but does not expose the seed or the fixed future descriptor deck.
Action grammar
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"const": "care"
},
"care": {
"enum": [
"feed",
"play",
"brush",
"nap"
]
}
},
"required": [
"type",
"care"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "next-day"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "end-run"
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
}Start a game
curl -s "https://gameboard.gg/api/games/naptuft/init?seed=7"
Then POST { stateToken, action } to https://gameboard.gg/api/games/naptuft/action, carrying the stateToken forward each call. See the API overview for the full loop.