The iconic battleships game. Now in your console!
Screen.Recording.2025-01-26.at.16.25.12.mov
- Play against computer or other players in your LAN.
- Start or join a new network game.
- Place your battleships manually... or use a single button to distribute them randomly.
- Play with your friends and see their actions in real time.
This project was built with the goal of not using any external libraries, relying entirely on the features provided by C++20 and UNIX sockets. The game includes a user interface and network serialization, all implemented from scratch.
- Elegant and colorful user interface built. using ANSI escape sequences.
- Separate threads for keyboard input and network operations.
- Low level networking with UNIX sockets.
- Smart memory management.
- Modern C++20 features, e.g.
std::ranges
.
The game was written and tested on macOS Sequoia 15.3. It should also work on other UNIX-based systems like Linux.
- A macOS computer (or other UNIX-based system).
- A terminal supporting ANSI escape sequences (e.g. Terminal.app).
- A terminal window of size 80x25 characters (width x height).