[US-05] Saving and restoring the game
Description
Implements comprehensive save/load functionality for the Battleship game. Players can save the current game state to a file and later load it to continue from the exact same point.
Changes
- Created GameSaveState class for serialization with all required game data
- Made all model classes (Coordinate, Ship, Board, Player) serializable
- Added saveGame() and loadGame() methods to GameController
- Implemented error handling for corrupted/missing files
- Added running time tracking for game sessions
Requirements Met
Acceptance Criteria
Technical Details
- Uses Java Object Serialization for state persistence
- Comprehensive error handling for file operations
- Preserves all game elements: ship placements, shots, turn order, game state
- Maintains hidden ship positions after loading
Closes #5 (closed)