![Battle](screenshots/battle.png)
[<img src="https://uptime.klavionik.dev/api/badge/1/status?upLabel=online&downLabel=offline">](https://uptime.klavionik.dev/status/battleship)
# Battleship TUI
Battleship TUI is an implementation of the popular paper-and-pen Battleship game for
your terminal. You can play against the AI or a real player via the Internet,
customize game options and appearance, keep track of your achievements, and more.
## Features
* Singleplayer mode
* Multiplayer mode (via Internet)
* Customizable game rules
* Customizable UI
* Launch via CLI
* Game statistics
## Planned features
* Ranking system
* Account management
## Requirements
* A terminal (Windows PowerShell is fine too, see below)
* Python 3.10 or higher
> [!NOTE]
> If you're on Windows, **make sure** to install [the newer Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701?hl=en-us&gl=US).
> The older Windows PowerShell can't properly display some symbols.
## Installation
If you're on Linux or macOS, most probably you already have Python installed. You can verify it by
running `$ python --version`. If your Python version is lower than required, try installing the
latest operating system updates.
If you're on Windows, you can download and install the latest Python release from the
[official site](https://www.python.org/downloads/windows/).
The recommended way to install and update the game is via
[pipx](https://pypa.github.io/pipx/) (especially if you don't know anything about
virtual environments).
Install `pipx`, then install the game.
```shell
pipx install battleship-tui[client]
```
`battleship-tui` is merely a Python package and is distributed via PyPI. You can
install it via `pip` too, but make sure it installs into a venv so that you're not
messing with the system interpreter.
## Play
Once the game is installed you can use the `battleship` command to run it. This
command will launch the user interface and present you with the main menu.
### Play via CLI
You can launch the game via CLI subcommands too, especially if you want to skip some
in-game menus.
For example, if your favorite game mode is singleplayer, salvo variant, you can
quickly get into battle by running `battleship play single --salvo`.
Run `battleship play --help` to discover available options.
## Multiplayer
You can play Battleship TUI with your friends or colleagues via the Internet. Choose
**Multiplayer** option in the main menu to do this.
### Game account
You may sign up for a multiplayer account or try multiplayer with guest access.
To sign up, run `battleship account signup`. You'll be prompted with your email,
desired nickname, and a password. Your nickname will be displayed in-game. It should
contain 7 to 20 characters and be unique. Your password should contain at least 9
characters.
> [!NOTE]
> Guests given an autogenerated nickname, their game statistics isn't saved. Guest
> access will work until you log off.
## Screenshots
<details>
<summary>Expand to see more screenshots</summary>
### Main menu
![Main menu](screenshots/main_menu.png)
### Game summary
![Summary](screenshots/summary.png)
### Starting a multiplayer session
![Awaiting](screenshots/multiplayer.png)
### List of game sessions to join
![Sessions](screenshots/sessions.png)
</details>
Raw data
{
"_id": null,
"home_page": "https://github.com/Klavionik/battleship-tui",
"name": "battleship-tui",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": null,
"keywords": "battleship, game, tui",
"author": "Roman Vlasenko",
"author_email": "klavionik@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/cc/8f/913bfd1e04af73e7a7dee8dad4fcaecba9f86ebe0184759a81c1e121ef25/battleship_tui-0.13.0.tar.gz",
"platform": null,
"description": "![Battle](screenshots/battle.png)\n\n[<img src=\"https://uptime.klavionik.dev/api/badge/1/status?upLabel=online&downLabel=offline\">](https://uptime.klavionik.dev/status/battleship)\n\n# Battleship TUI\nBattleship TUI is an implementation of the popular paper-and-pen Battleship game for \nyour terminal. You can play against the AI or a real player via the Internet, \ncustomize game options and appearance, keep track of your achievements, and more.\n\n## Features\n* Singleplayer mode \n* Multiplayer mode (via Internet)\n* Customizable game rules\n* Customizable UI\n* Launch via CLI\n* Game statistics\n\n## Planned features\n* Ranking system\n* Account management\n\n## Requirements\n* A terminal (Windows PowerShell is fine too, see below)\n* Python 3.10 or higher\n\n> [!NOTE]\n> If you're on Windows, **make sure** to install [the newer Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701?hl=en-us&gl=US). \n> The older Windows PowerShell can't properly display some symbols. \n\n## Installation\nIf you're on Linux or macOS, most probably you already have Python installed. You can verify it by \nrunning `$ python --version`. If your Python version is lower than required, try installing the \nlatest operating system updates.\n\nIf you're on Windows, you can download and install the latest Python release from the \n[official site](https://www.python.org/downloads/windows/).\n\nThe recommended way to install and update the game is via \n[pipx](https://pypa.github.io/pipx/) (especially if you don't know anything about \nvirtual environments).\n\nInstall `pipx`, then install the game.\n\n```shell\npipx install battleship-tui[client]\n```\n\n`battleship-tui` is merely a Python package and is distributed via PyPI. You can \ninstall it via `pip` too, but make sure it installs into a venv so that you're not \nmessing with the system interpreter.\n\n## Play\nOnce the game is installed you can use the `battleship` command to run it. This \ncommand will launch the user interface and present you with the main menu.\n\n### Play via CLI\nYou can launch the game via CLI subcommands too, especially if you want to skip some \nin-game menus.\n\nFor example, if your favorite game mode is singleplayer, salvo variant, you can \nquickly get into battle by running `battleship play single --salvo`.\n\nRun `battleship play --help` to discover available options.\n\n## Multiplayer\nYou can play Battleship TUI with your friends or colleagues via the Internet. Choose \n**Multiplayer** option in the main menu to do this.\n\n### Game account\nYou may sign up for a multiplayer account or try multiplayer with guest access.\n\nTo sign up, run `battleship account signup`. You'll be prompted with your email, \ndesired nickname, and a password. Your nickname will be displayed in-game. It should \ncontain 7 to 20 characters and be unique. Your password should contain at least 9 \ncharacters.\n\n> [!NOTE]\n> Guests given an autogenerated nickname, their game statistics isn't saved. Guest \n> access will work until you log off.\n\n\n## Screenshots\n<details>\n<summary>Expand to see more screenshots</summary>\n\n### Main menu\n![Main menu](screenshots/main_menu.png)\n\n### Game summary\n![Summary](screenshots/summary.png)\n\n### Starting a multiplayer session\n![Awaiting](screenshots/multiplayer.png)\n\n### List of game sessions to join\n![Sessions](screenshots/sessions.png)\n</details>\n",
"bugtrack_url": null,
"license": "GPL-2.0-or-later",
"summary": "Battleship TUI is an implementation of the popular paper-and-pen Battleship game for your terminal.",
"version": "0.13.0",
"project_urls": {
"Homepage": "https://github.com/Klavionik/battleship-tui"
},
"split_keywords": [
"battleship",
" game",
" tui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fad53b42080ff3a14657810a7ea1340c4a4d6802e674ef85ccb951ba245f09f7",
"md5": "05a2778617fb26d92a15024df2f161d1",
"sha256": "bf3ac9533896a60a19a4784d0f90967888a0077ccd8333beb88b2802a5727bc6"
},
"downloads": -1,
"filename": "battleship_tui-0.13.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "05a2778617fb26d92a15024df2f161d1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.10",
"size": 90045,
"upload_time": "2024-05-12T13:14:52",
"upload_time_iso_8601": "2024-05-12T13:14:52.296582Z",
"url": "https://files.pythonhosted.org/packages/fa/d5/3b42080ff3a14657810a7ea1340c4a4d6802e674ef85ccb951ba245f09f7/battleship_tui-0.13.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cc8f913bfd1e04af73e7a7dee8dad4fcaecba9f86ebe0184759a81c1e121ef25",
"md5": "b915a4cbb06bae67f62dc603196c3056",
"sha256": "0098d6b5a6a53a1509591a811ee558552ae24258d1d12d1442fe5d3c62328877"
},
"downloads": -1,
"filename": "battleship_tui-0.13.0.tar.gz",
"has_sig": false,
"md5_digest": "b915a4cbb06bae67f62dc603196c3056",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 64562,
"upload_time": "2024-05-12T13:14:54",
"upload_time_iso_8601": "2024-05-12T13:14:54.208648Z",
"url": "https://files.pythonhosted.org/packages/cc/8f/913bfd1e04af73e7a7dee8dad4fcaecba9f86ebe0184759a81c1e121ef25/battleship_tui-0.13.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-12 13:14:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Klavionik",
"github_project": "battleship-tui",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "battleship-tui"
}