![Battle](screenshots/battle.png)
[![PyPI - Version](https://img.shields.io/pypi/v/battleship-tui)](https://pypi.org/project/battleship-tui)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/battleship-tui)
[<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 computer or a real player via the Internet,
customize game options and appearance, keep track of your achievements, and more.
> [!NOTE]
> Please consider this an alpha-version software. You can still use it and enjoy it
> but note that things may break and data might get lost. Feel free to fill in an issue
> if you've found a bug or have a question.
## 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/12/98/b7a404e79e397dac079e94d548337e0993739856b881db6165150a772c8f/battleship_tui-0.24.1.tar.gz",
"platform": null,
"description": "![Battle](screenshots/battle.png)\n[![PyPI - Version](https://img.shields.io/pypi/v/battleship-tui)](https://pypi.org/project/battleship-tui)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/battleship-tui)\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 computer or a real player via the Internet, \ncustomize game options and appearance, keep track of your achievements, and more.\n\n> [!NOTE]\n> Please consider this an alpha-version software. You can still use it and enjoy it\n> but note that things may break and data might get lost. Feel free to fill in an issue\n> if you've found a bug or have a question.\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## 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.24.1",
"project_urls": {
"Homepage": "https://github.com/Klavionik/battleship-tui"
},
"split_keywords": [
"battleship",
" game",
" tui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96d17ecfbfeacf0196e04be80cb294d9c41c652978c4f4fbf2c3bee6697a8601",
"md5": "0eebeaa86cf8ae5c93f9f52f6b3f34d6",
"sha256": "d6a53b3462e8c470ab3aac2511b68ecb80d83ebe549b6ea4a0f4a28f61a0c5e7"
},
"downloads": -1,
"filename": "battleship_tui-0.24.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0eebeaa86cf8ae5c93f9f52f6b3f34d6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.10",
"size": 93904,
"upload_time": "2024-08-29T22:30:31",
"upload_time_iso_8601": "2024-08-29T22:30:31.614644Z",
"url": "https://files.pythonhosted.org/packages/96/d1/7ecfbfeacf0196e04be80cb294d9c41c652978c4f4fbf2c3bee6697a8601/battleship_tui-0.24.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1298b7a404e79e397dac079e94d548337e0993739856b881db6165150a772c8f",
"md5": "cf3e7188816de82288afbdf6c05570ba",
"sha256": "fec3afc633fc05ff2dcbaf4bf7d9d00a4419688939bb192b6511059e29920e86"
},
"downloads": -1,
"filename": "battleship_tui-0.24.1.tar.gz",
"has_sig": false,
"md5_digest": "cf3e7188816de82288afbdf6c05570ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 67387,
"upload_time": "2024-08-29T22:30:33",
"upload_time_iso_8601": "2024-08-29T22:30:33.310458Z",
"url": "https://files.pythonhosted.org/packages/12/98/b7a404e79e397dac079e94d548337e0993739856b881db6165150a772c8f/battleship_tui-0.24.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-29 22:30:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Klavionik",
"github_project": "battleship-tui",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "battleship-tui"
}