Sink the fleet before it sinks yours.
Android 7.0 and up · no accounts, no ads, no tracking · German and English
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.
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.
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.
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.
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.
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.
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.
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.
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.
A ten-by-ten grid each, five ships each, one shot each in turn.
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.
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.
Read the log. Every shot is reported by its coordinate — C7, J3 — with the newest line in bold at the foot of the card.
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.
Sink all five. Carrier, Battleship, Cruiser, Submarine, Destroyer — five, four, three, three and two cells. Whoever clears the other board first wins.
| Level | How it hunts | After a hit |
|---|---|---|
| Easy | at random | never follows up |
| Normal | at random | works outwards from the hit |
| Hard | a diagonal lattice no ship can hide in | works 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.
Three ways across, because one of them is always blocked by something.
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.
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.
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.
Taken from the running app.







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.