Delvewick
Dig the old mine, gather gems and mind the rumbling boulders.
Goal
Guide a mole prospector through 8 handcrafted underground levels. Each level is a small grid framed in bedrock; you dig through soil one cell at a time, gather gems until the level's gem quota is met (which opens the exit hatch, X becomes E), then step onto the open exit to bank the clear bonus and descend. Clearing level 8 wins the run. Every accepted action (move up/down/left/right or wait) advances the whole world exactly one tick; between actions everything is frozen, even mid-fall. Score as much as you can: gems, chains, geode cracks, level clears and unused oil all pay, and the score never decreases.
Scoring
Gem collected (walked into, or caught falling on your head): +25 each, quota or extra. Gem chain bonus: +10 for the 2nd, +20 for the 3rd, +30 for every further gem in a chain; a chain continues while each gem is collected within 4 ticks of the previous one and resets otherwise (and on level change). Geode cracked: +10 when it lands and mints its gem. Level clear: +100 on stepping through the open exit, plus +5 per unit of unused lantern oil. Finale: +250 extra for clearing level 8.
Rules
CELLS. # bedrock (indestructible), % soil (diggable), . empty, O boulder, * gem, G geode, X closed exit, E open exit, M you. Boulders, gems and geodes are movable and ROUNDED; each is at rest or FALLING (lowercase o, v, g on the map). Soil, bedrock and exits are flat. The mole occupies exactly one cell. ACTIONS. Exactly two: {type:'move', dir:up|down|left|right} and {type:'wait'}. Every accepted action costs 1 lantern oil (per-level move budget, refilled each level) and advances the world one tick. An INVALID action is refused with ok:false and costs nothing: moving off-grid, into bedrock, into a closed exit, up or down into any movable that is not a gem, sideways into a movable that cannot be pushed, or any action after the run ends. wait is always legal while playing. MOVING. Into soil: the soil is dug away and you enter in the same action. Into a gem (at rest or falling): the gem is collected and you enter its cell. Into empty or the open exit: you enter. Sideways into a boulder or geode AT REST whose next cell in the same direction is empty: it is pushed one cell (still at rest) and you take its place. You cannot push vertically, push a falling object, push two objects, or push into any non-empty cell. Digging never happens diagonally. TICK ORDER (exact). 1) your action applies as above; 2) if you stepped onto the open exit the level completes IMMEDIATELY: +100 clear bonus plus +5 per remaining oil, no gravity step, no oil cost, and the next level loads fresh (or the run is won after level 8 with +250); 3) otherwise ONE gravity pass runs; 4) the exit opens the instant this level's collected gems reach the quota (it never re-closes); 5) chain bookkeeping; 6) oil falls by 1, and at 0 without a completed level the run ends (out of oil); 7) if the board is fully settled and all four moves are invalid, the run ends immediately (boxed in) rather than draining oil. GRAVITY (one pass per accepted action). Scan rows bottom to top, columns left to right; each movable acts at most once per pass: a) FALL: if the cell below is empty it moves down one and is falling; b) PLAYER BELOW: an object AT REST directly above you stays put (you support it, indefinitely); a FALLING boulder or geode moves into your cell and the run ends; a FALLING gem moves into your cell and is CAUGHT (+25, chain included); c) ROLL: an object sitting on a rounded object rolls LEFT first (left cell AND down-left cell both empty; your cell never counts as empty), else right (mirrored); a rolled object is falling; d) LAND: a falling object that neither falls nor rolls comes to rest, and a GEODE that lands after a fall cracks into a gem at rest (+10; the minted gem counts toward the quota when collected). Movables never enter an exit cell. A long cascade takes several ticks to settle, and only ticks when you act, so you may study a paused avalanche as long as you like. Standing under an AT-REST object is safe; the moment you step out from under it, it falls that same tick. Anything ALREADY FALLING does not stop for you: boulders and geodes end the run, gems are caught. Gems are indestructible treasure; nothing removes them from the board except you. RUN. The run ends won (level 8 cleared), or early: a falling rock reached you, the oil ran out, or you were boxed in on a settled board. Every ending keeps the full banked score. There is NO randomness anywhere: the levels are fixed handcrafted layouts (level 1 "Topsoil" quota 4 oil 40; level 2 "Root Cellar" quota 5 oil 46; level 3 "Old Workings" quota 6 oil 52; level 4 "Geode Hollow" quota 7 oil 58; level 5 "Slate Gallery" quota 9 oil 64; level 6 "The Underbrook" quota 11 oil 70; level 7 "Deep Seam" quota 12 oil 76; level 8 "The Gemheart" quota 13 oil 80) and a run is a pure function of your action list.
Action grammar
{
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"const": "move"
},
"dir": {
"enum": [
"up",
"down",
"left",
"right"
]
}
},
"required": [
"type",
"dir"
]
},
{
"type": "object",
"properties": {
"type": {
"const": "wait"
}
},
"required": [
"type"
]
}
]
}Start a game
curl -s "https://gameboard.gg/api/games/delvewick/init?seed=7"
Then POST { state, action } to https://gameboard.gg/api/games/delvewick/action, carrying state forward each call. See the API overview for the full loop.