Sea Duel icon

SEA DUEL

Sink the fleet before it sinks yours.

Android 7.0 and up · no accounts, no ads, no tracking · German and English

3 ways to play 3 levels of opponent 10 × 10 board, 17 cells of ship 2 languages

What it does

The pen-and-paper naval game, played properly. The rules are plain Kotlin with no Android imports at all, which is how they can be tested by playing three hundred games against themselves.

An opponent that hunts

It fires blindly until something connects, then works outwards from that hit until the ship goes down. It never reads your board — only the answers to its own shots — so the harder levels search better rather than cheat.

Three ways to play

Against the machine. Against someone beside you, passing the one phone back and forth with the board covered in between. Or against another device entirely.

Your fleet, your layout

Place all five ships by hand: tap to set one down, turn it between horizontal and vertical, take the last one back. Or press Random and let the sea decide.

Ships, not squares

Each vessel is drawn as one hull rather than a row of blocks, with red blisters on the sections that have been hit. A sinking ship lists, slides under and takes the colour of a wreck.

A record worth beating

Played, won, lost and win rate, plus your best wins ranked by how few shots they took. Only wins against the machine are ranked, so the table stays comparable.

Picks up where you left off

A game in progress is written down at every move, and a half-placed fleet too. Close the app mid-battle and it is still there — the computer even remembers what it was chasing.

Playable without seeing it

Every square says where it is and what is on it out loud, and the newest line of the log is read as it arrives. Ship names are only spoken for boards you are allowed to see.

Yours to look at

Light, dark or whatever the phone is set to. German or English, independent of the device language. Sound and vibration each switch off on their own.

How to play

A ten-by-ten grid each, five ships each, one shot each in turn.

  1. Place your fleet. Tap a square to set down the highlighted ship, which runs right or down from there. Horizontal / Vertical turns it, Undo takes the last one back, Random lays out all five at once.

  2. Fire. Tap a square in enemy waters. A pale square is a miss, a red one a hit, and a dark red hull is a ship on the bottom.

  3. Read the log. Every shot is reported by its coordinate — C7, J3 — with the newest line in bold at the foot of the card.

  4. Switch boards. The two tabs above the grid show enemy waters and your own fleet, each with the damage it has taken out of seventeen.

  5. Sink all five. Carrier, Battleship, Cruiser, Submarine, Destroyer — five, four, three, three and two cells. Whoever clears the other board first wins.

LevelHow it huntsAfter a hit
Easyat randomnever follows up
Normalat randomworks outwards from the hit
Harda diagonal lattice no ship can hide inworks outwards from the hit

The smallest ship is two cells long, so nothing can sit entirely in the gaps of that lattice. Searching it halves the work without ever missing a target. The level applies to the next game you start, not the one you are in.

Two devices

Three ways across, because one of them is always blocked by something.

The same Wi-Fi

One device hosts, the other finds it announced on the network and joins. If discovery is blocked you can type the address and port instead. A VPN will stop this: it routes even local traffic away from the network.

Nearby

Bluetooth and Wi-Fi Direct, through Nearby Connections. No shared network at all, which is the way out when a guest network or a VPN keeps the two apart.

Online

Two home routers accept no incoming connections, so both devices dial out to a relay that pairs them by a short code. The relay is one small Python file you run yourself — there is no server of ours in the middle. It is published here.

Neither device holds both fleets. Each owns its own board and learns about the other only from the answers to its shots, which is what makes cheating impossible without both ends agreeing to it.

Screenshots

Taken from the running app.

Enemy waters mid-game
Enemy waters
Your own fleet, with a sunk ship
Your fleet
Placing the fleet
Placing the fleet
Finding the other device
Two devices
High scores
High scores
Settings
Settings
The navigation drawer
Navigation

Privacy, in one paragraph

Sea Duel keeps nothing about you. Scores and settings live in a private preferences file on the device and are deleted with the app. There are no accounts, no ads, no analytics and no third-party SDKs. It does hold network permissions, because two devices can play each other: on a shared Wi-Fi it talks straight to the other phone, over Nearby it uses Bluetooth and Wi-Fi Direct, and for a game across the internet it dials a relay whose address you type in yourself. Nothing leaves the device unless you start a game against another one, and what crosses the wire is shots and their answers. Below Android 13 the system counts scanning for nearby devices as a location capability, which is why that permission is asked for — the game never asks where anyone is. The full text is in the privacy policy.