โญ 0
๐ŸŽŸ 0
BLOCK BRIGADE

๐Ÿงฉ How to Play โ€” Block Brigade

A block puzzle with a secret picture! Mia the Panda hid a friend under the frosted board. Drag pieces onto the grid, fill a whole row or column, and the line dissolves โ€” peeling the picture open. Clear every cell to reveal WHO'S HIDING!

Scoring

  • Place a piece: +3
  • Clear a line: +8 each (clear 2โ€“3 at once for combo Gallery Tickets!)
  • Reveal the whole picture: +15
  • Promotions every 150 โญ: Tile Tinker โ†’ Mosaic Maker โ†’ Picture Pathfinder โ†’ Gallery Curator โ€” each one unlocks a frame and a real power-up.

Reading the board

  • blue dashed = where your piece will land
  • yellow โœจ = this line will CLEAR and reveal!
  • red stripes โœ– = locked cell โ€” it can never hold a piece, but its line can still clear around it
  • cyan frame = the hidden picture

Mia's powers

  • ๐Ÿงค Pixel Glove Glitch: clear 2+ lines in one drop to charge it, then tap BLAST and tap the board โ€” a 3ร—3 patch glitches away and reveals what's under it.
  • โ†ฉ Undo: free and endless on Boards 1โ€“2. Later boards give you a few per board.
  • ๐Ÿ”€ Tray jam? If no piece fits, reshuffle is always free. Nobody ever loses here.
  • ๐Ÿ’ Mia's cherry power keeps her speedrunning โ€” and Bit, her pixel sprite, rides along for luck.
  • ๐Ÿ’ก Hint button: tap ๐Ÿ’ก up top and a TRY HERE spot glows. Costs 1 ๐ŸŽŸ โ€” unless you own the Hint Star!

๐Ÿ› The Ticket Shop

  • Finishing boards, combos, zones and finding Bronx earn ๐ŸŽŸ Gallery Tickets.
  • Spend them in the SHOP (main menu, or right after a board): rainbow & golden frames, Mia hoodies, a star trail โ€” plus real power-ups: +1 Undo, a bigger Glove charge, and free hints forever.
  • Nothing in the shop is needed to finish a board โ€” it's all bonus fun. And it never, ever costs real money.
๐ŸŽ‰
LEVEL UP!
LEVEL 2

๐Ÿ–ผ Gallery & Settings

Pictures revealed: 0

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Family-Photo Mode (grown-ups)

Load a family photo and it becomes the hidden picture under the board โ€” just like the one Bentley spotted at football! The photo is processed only on this device: it is never uploaded, never shared, and never leaves this phone. Family photos never appear on share cards. Remove it any time.

c[0])), my = Math.min(...cells.map(c=>c[1])); return cells.map(c=>[c[0]-mx, c[1]-my]).sort((a,b)=> a[1]-b[1] || a[0]-b[0]); } function cellsKey(cells){ return normCells(cells).map(c=>c[0]+","+c[1]).join("|"); } function rotationsOf(id){ const out = [], seen = new Set(); let cur = PIECE_DEFS[id].cells.map(c=>[...c]); for (let r=0;r<4;r++){ const n = normCells(cur), k = cellsKey(n); if (!seen.has(k)){ seen.add(k); out.push(n); } cur = cur.map(c=>[-c[1], c[0]]); } return out; } const PIECE_ROTS = {}; for (const id in PIECE_DEFS) PIECE_ROTS[id] = rotationsOf(id); function pieceCells(id, rot){ const rs = PIECE_ROTS[id]; return rs[((rot%rs.length)+rs.length)%rs.length]; } function pieceDims(id, rot){ const cs = pieceCells(id,rot); return { w: Math.max(...cs.map(c=>c[0]))+1, h: Math.max(...cs.map(c=>c[1]))+1 }; } /* Grid values: 0 empty, 1 filled. blocked[][]: true = locked cell. */ function canPlace(grid, blocked, id, rot, ax, ay){ const cs = pieceCells(id, rot), rows = grid.length, cols = grid[0].length; for (const [dx,dy] of cs){ const x = ax+dx, y = ay+dy; if (x<0 || y<0 || x>=cols || y>=rows) return false; if (blocked[y][x] || grid[y][x]) return false; } return true; } function applyPlace(grid, blocked, id, rot, ax, ay){ const rows = grid.length, cols = grid[0].length; const g = grid.map(r=>[...r]); const cs = pieceCells(id, rot); for (const [dx,dy] of cs) g[ay+dy][ax+dx] = 1; const rowsHit = [...new Set(cs.map(c=>ay+c[1]))], colsHit = [...new Set(cs.map(c=>ax+c[0]))]; const clearedRows = rowsHit.filter(y => g[y].every((v,x)=> blocked[y][x] || v===1)); const clearedCols = colsHit.filter(x => g.every((row,y)=> blocked[y][x] || row[x]===1)); for (const y of clearedRows) for (let x=0;x