How to Play Salvo
Salvo is a naval grid battle game played on two 10×10 charts — one for your fleet, one for the enemy waters. Before battle begins you deploy five ships of varying lengths: the Carrier (five cells), Battleship (four), Destroyer (three), Submarine (three), and Patrol Boat (two). Click cells on your own chart to place each vessel, using the Rotate button to flip orientation, then press Ready when your fleet is deployed.
Once battle starts, you and the AI take alternating turns firing on each other's hidden grids. Click any cell on the enemy chart to fire. A hit lights red with a cross marker; a miss turns blue with a ripple ring. When every cell of a ship registers as hit it sinks — the cells turn dark and the entire vessel is crossed out. Sink all five enemy ships before the AI destroys your fleet to win.
Strategy Tips
- Keep your longest ships off the middle. On Hard the AI scores every cell it has not fired on by how many ways one of your surviving ships could still fit through it, then shoots the hottest cell. On turn one that heat map peaks in the centre of the chart, because a middle cell can be crossed by many more Carrier and Battleship positions than a cell in the outer ring. Parking your two longest vessels along the edge rows and columns buys you turns while the AI works outwards.
- Every ship sits inside a one-cell buffer — use it. Placement rejects any position where a vessel would touch another, diagonally included, on your chart and the enemy's alike. So the AI can never chain out of a sunk ship into its neighbour, and the moment you sink an enemy vessel you can cross off every cell ringing it: nothing is allowed to hide there. On a 10×10 board that is often a dozen squares you never have to spend a shot on.
- Open your own fire through the middle. Enemy ships are placed by rolling a random origin square and re-rolling whenever the hull would run off the board, which loads the centre: a middle cell can be covered by five different Carrier positions where a cell in column 1 or column 10 can be covered by only one. The outer ring is the emptiest part of the enemy chart. Work the centre until it stops paying, then spiral out.
- Read the board, not just the sunk tracker. The HUD counts enemy ships down out of five but never says which — sinking three tells you nothing about the lengths left, because they can fall in any order. The board itself does: a run of hits that dead-ends in both directions is a finished hull, and the buffer rule clears the ring around it. Once you draw blood, keep pushing along the axis of the hits rather than scattering around them.
- Treat a lost Daily as reconnaissance. The enemy layout is rebuilt from the same UTC-date seed on every replay, so a fleet you found on a losing run is still in exactly those squares on the next attempt. Note the Carrier's row before you quit and go straight to it. The AI's return fire is not seeded, though, so a run that went well once will not repeat shot for shot.
Understanding the Difficulty Levels
Easy mode is the best entry point for new players. The AI fires at a completely random unrevealed cell each turn with no pattern recognition. Because the five hulls occupy only 17 of the 100 cells, random targeting misses far more often than it hits, which gives you plenty of time to sink the enemy fleet before yours takes serious damage. On Easy you can win even if you fire inefficiently — the AI is just as likely to miss a cluster of ships as a lone patrol boat.
Normal mode introduces hunt-target logic. The AI fires randomly until it registers a hit, then immediately probes all four orthogonal neighbors of that hit cell trying to find the ship axis. Those neighbours go into a queue it works through one cell per turn, so a single hit costs you a run of follow-up shots in the same corner of the board. There is no axis-locking step — it keeps probing all four directions rather than reasoning about which way the hull runs — and it never fires twice in one turn, so damage always arrives one cell at a time. When one of your ships finally goes down the queue is wiped and the AI drops back to hunting at random.
Hard mode replaces the random half of hunting with probability density. It still chases a fresh hit through the same neighbour queue as Normal, but on any turn when that queue is empty it builds a heat map across the chart, counting how many horizontal and vertical placements of your not-yet-sunk ships could still fit through each cell it has not fired on. It then shoots the hottest cell — the one most likely to hold part of a ship it has not found. That is the standard density heuristic for Battleship-style games, and it finds your fleet markedly faster than random hunting alone. On Hard, ship placement strategy matters far more than firing strategy: the AI will find your fleet regardless, so your best shot at a high score is sinking the enemy quickly before the AI's efficient hunting ends the game.
Scoring System Explained
Salvo uses a simple but rewarding points system. Sinking each of the five enemy ships earns 10 points regardless of how many shots it took to sink it — you are not penalized for missed shots against that ship, only incentivized to hit and finish quickly so the AI fires fewer times. When you win, each of your own ships still afloat adds 5 survival bonus points. Five ships surviving adds 25 bonus points, making the no-damage victory worth 75 points total. The Daily Challenge runs on the identical formula, so 75 points is the ceiling there too. The survival bonus counts hulls rather than damage: a ship of yours that has taken hits but has not been fully sunk still counts as afloat and still pays its full 5 points.
Your all-time best score is stored locally in your browser under the key salvo_best. After each game the results screen compares your final score to your record and flags a new personal best in gold text if you break it. Your win streak is tracked separately under salvo_streak and resets to zero on any loss. Both records persist across sessions as long as you don't clear local storage.
Frequently Asked Questions
How do I place my ships in Salvo?
Click any cell on your board to place the current ship starting at that position. Use the Rotate button or right-click (desktop) to toggle between horizontal and vertical orientation — a ghost preview shows exactly where the ship will land before you commit. The Random button places all five ships instantly in valid non-overlapping positions if you prefer a quick start. Once all ships are down, press Ready to begin the battle.
How does the AI work in each difficulty?
Easy AI fires at a completely random unrevealed cell every turn — purely opportunistic, no pattern recognition. Normal AI uses hunt-target logic: it fires randomly until it scores a hit, then switches to targeting the four orthogonal neighbors to find the ship axis. Hard AI builds a probability density map based on the remaining fleet sizes — the cells statistically most likely to contain undiscovered ships get fired first, making it significantly more efficient at hunting.
What is the Daily Challenge mode?
The Daily Challenge seeds the enemy ship layout from today's UTC date using a deterministic random number generator, so every player worldwide faces an identical fleet that day and the same fleet returns on every retry. Only the layout is seeded — the AI's own shots still use ordinary randomness. Scoring is exactly the same as a normal game, with no daily bonus, and Daily results are posted to their own leaderboard board instead of the classic one. The streak shown on the results screen counts consecutive wins, not consecutive days, and resets to zero on any loss.
How is the score calculated?
Each enemy ship you sink earns 10 points. When you sink all five and win, each of your own ships still afloat adds 5 bonus points — so a clean sweep with no losses is worth 75 points (50 for five sinks plus 25 for five surviving ships), which is the maximum the game can award. Daily Challenge runs score identically — there is no separate daily bonus. Losing scores only the ships sunk before your fleet was destroyed, with no survival bonus.
Does Salvo work on mobile?
Yes. On mobile the grids scale to fit the viewport — touch and tap anywhere on the enemy grid to fire. The canvas uses touch-action:none to prevent accidental page scrolling mid-move. During ship placement, tap to place and use the Rotate button to flip orientation before each tap. The layout stacks vertically on narrow screens so both grids remain fully visible without horizontal scrolling.