How a single meme image became a fully playable Minesweeper game set in the Strait of Hormuz — built and shipped in one evening with Claude Code.
Share this post:
Export:

It started with a single image.
My friend Michael J Steele posted it on Facebook with a single word: "Snort."

He had shared a screenshot of classic Windows Minesweeper — the one we all played in the 90s when we should have been working — and overlaid it on a map of the Strait of Hormuz. The naval mines in the game cells. The flags marking suspected positions. The numbers counting adjacent threats. And underneath it all, the narrow waterway where a fifth of the world's oil passes through every day.
I looked at that image and knew immediately: this needed to be a real game. Tonight.
The name wrote itself: Strait Sweeper. A pun that works on two levels — it's a minesweeper game, and minesweeping is literally a real naval operation in the Strait of Hormuz. The US Navy's Mine Countermeasures Squadron has been sweeping those waters for decades.
The concept goes deeper than the pun. Classic Minesweeper is abstract — a grid of gray squares hiding randomly placed bombs. Strait Sweeper makes it concrete. The mines are naval mines. The water is the actual Persian Gulf and Gulf of Oman. The land masses are Iran, the UAE, Oman. And here's the key gameplay innovation: mines only spawn in water cells. Land is always safe.
That one rule transforms the game. In classic Minesweeper, every cell is equally dangerous. In Strait Sweeper, the coastlines become your safe zones. You can clear land cells freely to establish a beachhead, then work your way into the dangerous shipping lanes. Geography becomes strategy.
I sat down with Claude Code at around 9 PM and said: "I'm going to show you one image. Build the game." I gave it the screenshot and told it to go hard — use sub-agents aggressively, use its own judgment, and ship tonight.
Within minutes, Claude had:
The first playable version landed about 30 minutes later. Four files, ~1,400 lines:
gameEngine.ts — Types, map data, mine placement (water-only), flood fill reveal, chord clicking, win/loss detectionuseSounds.ts — Web Audio API synthesized retro sounds. No audio files needed — every click, flag, explosion, and victory fanfare is generated programmatically with oscillators and noise bufferspage.tsx — The full game UI with Win95 aestheticlayout.tsx — SEO metadataThree difficulty levels, named for naval ranks:
| Difficulty | Grid | Mines | View |
|---|---|---|---|
| Patrol | 14x8 | 15 | The narrow chokepoint |
| Destroyer | 24x14 | 55 | The strait + surrounding waters |
| Admiral | 30x16 | 99 | Full regional panorama |
All landscape aspect ratios, because the strait itself is landscape. That was an early iteration — the first version had Patrol as a square 9x9. It looked wrong. The geography demanded landscape.
The first version used colored cells — tan for land, light blue for water. It was functional but flat. Then I pulled up Google Maps, took a screenshot of the actual Strait of Hormuz region, and said: "I want the satellite imagery to show through when you reveal cells."
Click a cell and the gray bevel vanishes. The actual satellite terrain appears underneath. Minesweeper becomes geographic discovery. You see Bandar Abbas emerge from the fog. Qeshm Island appears. The Musandam Peninsula juts into the strait. Dubai's coastline materializes. Abu Dhabi takes shape.
Under the hood, the grid container has the satellite image as a CSS background-image. Unrevealed cells are opaque gray (blocking the map). Revealed cells are transparent (showing the map through). Numbers get white text-shadow halos so they're readable against any terrain.
It's fog of war that reveals real geography. Accidentally educational. You finish a game and you've learned where Kish Island is, why the Strait of Hormuz matters geopolitically, and that the Gulf of Oman is east of the Musandam Peninsula.
The game engine needs a land/water classification for every cell — that determines where mines can spawn. My first terrain maps were rough approximations. Close, but wrong in ways that mattered. Mines were appearing on what the satellite clearly showed as Iranian mountains. The Gulf of Oman was too wide in some spots, too narrow in others.
Claude's solution: build an interactive terrain editor. A mode where I could see the satellite image with L/W labels on every cell and click to toggle them. When I was done, a "Copy Map" button exported the terrain string array that could be pasted directly into the code.
Claude can write code all day, but it can't look at a satellite image and tell where the coastline falls on a 30x16 grid. I can. So we built a tool that plays to each side's strengths — my eyes on the geography, its hands on the keyboard.
I painted all three difficulty levels by hand, cell by cell, on top of the satellite imagery. The result is terrain data that matches the real geography precisely. Iran's coast, the island chains, the UAE peninsula surrounded by water on both sides, the narrow Gulf of Oman widening as you go south.
After the terrain was perfect, I noticed something: mines were clustering on the left side of Admiral mode. The Persian Gulf is a huge open water area, while the Gulf of Oman on the right is a narrow strip. Pure random distribution puts most mines in the big water area. Mathematically correct, but it felt wrong.
The fix: stratified mine placement. The algorithm divides the grid into six vertical strips, counts water cells in each strip, and allocates mines proportionally. Then within each strip, placement is random. The result is mines that feel evenly distributed across the whole map while still being random within each zone.
Players won't notice. That's the point.
No game is complete without a leaderboard. Ours is backed by DynamoDB with two sections:
Strait Cleared — victories sorted by time, with difficulty badges (PTL/DST/ADM) and gold highlights for the top 3.
Recent Casualties — losses displayed with red callsigns, mines remaining, and difficulty level. Because in this game, dying is part of the experience.
If you don't set a callsign, you get a random nautical name: Barnacle Bill, Torpedo Ted, Sonar Sally, Depth Charge Dave, Admiral Bubbles, Commodore Splash. There are twenty of them and they're all ridiculous.
The API has rate limiting (10 submissions per IP per minute) and minimum time validation (nobody clears even Patrol in under 3 seconds). A share button captures your board as a screenshot for social media bragging — or commiserating.
| Metric | Count |
|---|---|
| Total commits | 18 |
| Lines of code | ~2,000 |
| External dependencies added | 1 (html-to-image for screenshots) |
| Audio files | 0 (all synthesized) |
| Image assets | 1 (satellite map, 955KB) |
| Time from first prompt to production | One evening |
| DynamoDB tables | 1 |
| Nautical callsigns | 20 |
| Fun had | Unreasonable amounts |
The real trick isn’t the tech. It’s that you can now take any current event, mash it with a classic game format, and ship something novel in an evening. Strait of Hormuz plus Minesweeper. What’s next — Tariff Tetris? Sanctions Snake?
The AI augmentation collapses the time between idea and playable artifact. You see a funny image on Facebook at 9 PM, and by midnight people are competing on a global leaderboard. The gap between “that would be funny” and “go play it” is now a few hours instead of a few weeks.
Strait Sweeper is live. Three difficulties, real satellite geography, a global leaderboard, and the timeless satisfaction of clearing a minefield without blowing yourself up.
Start with Patrol if you want a quick game in the narrow chokepoint. Graduate to Destroyer for the full strait experience. Admiral if you want to sweep the entire region from the Persian Gulf to the Gulf of Oman.
Fair warning: it's addictive. The satellite reveal turns every game into a geography lesson, and the "just one more game" loop is strong.
Clear the strait, sailor. The shipping lanes depend on you.
Strait Sweeper was built in one evening in March 2026. The entire development conversation — from first prompt to final deploy — happened in a single Claude Code session. Eighteen commits, zero planning documents, one satellite image, and a lot of right-clicking.
Get notified when I publish new blog posts about game development, AI, entrepreneurship, and technology. No spam, unsubscribe anytime.
Loading comments...
Published: March 15, 2026 4:52 AM
Last updated: March 15, 2026 5:23 AM
Post ID: 9f38dba3-7359-4f59-9f5b-a27894b96386