Dino Dots

Dino Dots is a Dots-and-Boxes game for Chrome, with teeth. Claim territory against a chain-hunting T-Rex AI that plays the double-cross like a pro. Three board sizes, three difficulties — the Apex raptor does not miss.

Dino Dots

Dots & Boxes with teeth

The Herd 0
vs
T-Rex 0

Your move, herbivore.

W 0 · L 0 · D 0 #DHSeaDev · v1.0.0
Launch writeup

The Chrome Web Store listing is retired; the game plays right here.

← Back to the project

How the dinosaur actually plays

Dots and Boxes rewards the player who understands chains, not the player who grabs the most squares early. Complete a box and you move again, so the board eventually resolves into long chains where whoever opens one hands every box in it to the other player.

The T-Rex plays for that structure. It will refuse a free square rather than be the one who opens a chain, and it weighs the parity of the remaining chains before committing.

The counter is the double-cross: take all but the last two boxes of a chain and hand those two back deliberately. You concede two squares to force your opponent to open the next chain. Learn that and the dinosaur becomes beatable.

What was hard about it — porting the extension to this page

The game you are playing above is the extension’s own code, not a rewrite. Four ES modules were bundled into one and the extension’s chrome.storage calls were shimmed onto localStorage, so the game logic and the dinosaur AI run here byte-for-byte as they do in Chrome.

The delivery was the awkward part. WordPress entity-encodes characters inside inline scripts, and JavaScript is full of them — a single logical AND becomes broken syntax on save, silently, with no error until the page runs. The fix was to stop shipping the code as page text: the bundle is base64-encoded and loaded through a data URI module script, so WordPress never touches the payload body at all.

The second surprise was cosmetic and stubborn. The dinosaur emoji sit in Unicode’s astral plane, and this site strips them through every delivery path tried — raw characters, HTML entities, and JavaScript escape sequences alike. Rather than fight it, the scoreboard avatars became plain CSS discs: green for the herbivore, red for the T-Rex. Nobody has missed the emoji.

emoji herd · SVG board · no framework · #DHSeaDev

Dino Dots is one of the games listed on the projects index. Two more play straight in the browser: Singularity Tower and Prism Break.


Privacy

Plain version: Dino Dots talks to nobody. It makes no network requests of any kind, has no way to identify you, and stores everything on your own machine.

WhatAnswer
Accounts or sign-inNone. There is nothing to sign into.
Analytics or telemetryNone. No events, no page views, no crash reporting, no third-party scripts.
Network requestsNone at all. The extension never contacts any server. It has no host permissions and makes no fetch, XMLHttpRequest, or WebSocket calls.
Where your data liveschrome.storage.local — this browser only. Your in-progress game, board size, difficulty and win/loss record never leave your device and never sync to a Google account or any server.
Browsing history & page contentNever read. The game runs entirely inside its own side panel and has no access to the pages you visit.
Remote codeNone. No eval, no remotely-hosted scripts, no CDN, no remote fonts. Everything executable ships inside the package.
Selling or sharing dataThere is no data to sell. Nothing is transferred to anyone, for any purpose.
Deleting your dataRemove the extension, or clear its storage from chrome://extensions.
Permissions, and exactly why each one exists
PermissionWhy
sidePanelThe game board and all controls render in Chrome's side panel — the extension's only surface.
storageSaves the in-progress game, board-size and difficulty settings, and win/loss record locally so a game can be resumed after the panel is closed.

That is the whole manifest. There are no host permissions, no activeTab, no scripting, no tabs — the game has no reason to see anything outside its own panel, so it cannot.

Questions about any of this: dhseadev@gmail.com