Metadata-Version: 2.4
Name: pybattletank
Version: 0.0.6
Summary: Battletank game created to explore Python packaging landscape
Project-URL: Homepage, https://linhns.github.io/pybattletank/
Project-URL: Repository, https://github.com/linhns/pybattletank
Project-URL: Documentation, https://linhns.github.io/pybattletank/
Author-email: Nguyen Son Linh <linhns59@gmail.com>
License-File: LICENSE
Keywords: python
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Games/Entertainment :: Arcade
Classifier: Topic :: Software Development :: Libraries :: pygame
Requires-Python: <4.0,>=3.9
Requires-Dist: pygame>=2.6.1
Requires-Dist: six>=1.16.0
Requires-Dist: tmx>=1.10
Description-Content-Type: text/markdown

# pybattletank

[![Release](https://img.shields.io/github/v/release/linhns/pybattletank)](https://img.shields.io/github/v/release/linhns/pybattletank)
[![Build status](https://img.shields.io/github/actions/workflow/status/linhns/pybattletank/main.yml?branch=main)](https://github.com/linhns/pybattletank/actions/workflows/main.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/linhns/pybattletank/branch/main/graph/badge.svg)](https://codecov.io/gh/linhns/pybattletank)
[![Commit activity](https://img.shields.io/github/commit-activity/m/linhns/pybattletank)](https://img.shields.io/github/commit-activity/m/linhns/pybattletank)
[![License](https://img.shields.io/github/license/linhns/pybattletank)](https://img.shields.io/github/license/linhns/pybattletank)

pybattletank is a simple tower defense game written using
[pygame](https://www.pygame.org/) to explore
game development and the Python packaging landscape.

The gameplay is based on Philipe-Henri Gosselin's well-written series [Discover
Python and Patterns](https://www.patternsgameprog.com/series/discover-python-and-patterns/).

![Demo](./docs/assets/images/pybattletank.gif)

Detailed documentation is available at <https://linhns.github.io/pybattletank/>.

## Installation

There are a number of ways to obtain the game:

- Install via [pip](https://github.com/pypa/pip):

  ```shell
  pip install pybattletank
  ```

  Then, run the game:

  ```shell
  pybattletank
  ```

  or:

  ```shell
  python -m pybattletank
  ```

- Run without installation using [uv](https://github.com/astral-sh/uv):

  ```shell
  uvx pybattletank
  ```

- Grab the binary for your operating system from the
[releases](https://github.com/linhns/pybattletank/releases) page.

## Usage

### Basic game controls

- `W`, `A`, `S`, `D` to move tank.
- **Left-click** to shoot.
- Arrow keys/`Enter` to select menu items.

### Adding levels

Beside the packaged levels, users can create custom ones. Read this [guide](https://linhns.github.io/pybattletank/creating_levels).

## Acknowledgements

- Philippe-Henri Gosselin (@philippehenri-gosselin) for the wonderful series
  Discover Python and Patterns. <https://www.patternsgameprog.com/series/discover-python-and-patterns/>
- Florian Mass (@fpgmass) for creating [cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).
