diff --git a/Images/img.png b/Images/img.png new file mode 100644 index 0000000..c24a4f7 Binary files /dev/null and b/Images/img.png differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..d351a94 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# πŸ“„πŸ›³οΈ Paper Battleship + +**Paper Battleship** is a Java-based networked version of the classic Battleship game, built using socket programming. It simulates the nostalgic feel of the paper-based game, now with two players connecting over a network and taking turns to attack each other's grid. + +## 🎯 Features + +* Two-player turn-based gameplay over a network +* Server-client architecture using Java Sockets +* Console-based grid interaction +* Hit/miss feedback and ship sinking notification +* Simple and minimalistic design for learning and fun + +## πŸ•ΉοΈ How to Play + +1. **Start the Server** + Run the `BattleShipServer` on one machine (or the host machine). + +2. **Connect Two Clients** + Run `BattleShipClient` on two separate terminals or machines. Each player enters the server's IP and port to connect. + +3. **Gameplay** + + * Each player places their ships (can be manual or random depending on your implementation). + * Players take turns entering grid coordinates like `A3`, `B7`, etc. + * The game continues until one player sinks all of the opponent’s ships. + +![image](Images/img.png) + +## πŸš€ Getting Started + +### Prerequisites + +* Java 8 or higher +* Terminal or IDE (e.g., IntelliJ, Eclipse) + + +## πŸ“ Project Structure + +``` +PaperBattleShip/ +β”œβ”€β”€ java/ +β”‚ β”œβ”€β”€ Client/ +β”‚ β”‚ β”œβ”€β”€ BattleShip.java +β”‚ β”‚ β”œβ”€β”€ BattleShipCell.java +β”‚ β”‚ β”œβ”€β”€ BattleShipClient.java +β”‚ β”‚ β”œβ”€β”€ BattleShipClientNetworkHandler.java +β”‚ β”‚ └── utils/ +β”‚ β”‚ └── AnsiColor.java +β”‚ └── Server/ +β”‚ β”œβ”€β”€ BattleShipServer.java +β”‚ └── ClientHandler.java