Before play begins, each player arranges a number of ships secretly on the grid for that
player. Each ship occupies a number of consecutive squares on the grid, arranged either
horizontally or vertically. The number of squares for each ship is determined by the type
of the ship. The ships cannot overlap (i.e., only one ship can occupy any given square in
the grid). The types and numbers of ships allowed are the same for each player.
After the ships have been positioned, the game proceeds in a series of rounds. In each
round, each player's turn consists of announcing a target square in the opponent's grid
which is to be shot at. If a ship occupies the square, then it takes a hit. The player's
opponent announces whether the shot has hit or missed one of the opponent's ships and
then takes a turn. When all of the squares of a ship have been hit, the ship is sunk. After
all of one player's ships have been sunk, the game ends and the other player wins.”
I can implement it in Delphi very fast. For Windows 32/64. If it's interesting to you, please let me know details. The price is not final, it will depend on final needs.
For this project I will use C# and WPF because it can provide very good graphical capabilities required for games. If your project needs to be driven on web I can make it too. For web I suggest Silverlight or ASP.NET it all depends on your needs.