Metadata-Version: 2.1
Name: onx
Version: 0.1.0
Summary: Client-server Tic Tac Toe (Noughts & Crosses) terminal based, online game through websockets.
Home-page: https://github.com/vyalovvldmr/onx
License: GPL-3.0-only
Keywords: Noughts & Crosses,Tic Tac Toe,terminal based game,online game,websockets
Author: Vladimir Vyalov
Author-email: vyalov.v@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Games/Entertainment :: Board Games
Classifier: Typing :: Typed
Requires-Dist: aiohttp[speedups] (==3.8.1)
Requires-Dist: click (==8.1.3)
Requires-Dist: pydantic (==1.9.2)
Requires-Dist: pyfiglet (==0.8.post1)
Requires-Dist: schema (==0.7.5)
Requires-Dist: textual (==0.1.18)
Project-URL: Repository, https://github.com/vyalovvldmr/onx
Description-Content-Type: text/markdown

# Tic Tac Toe (Noughts & Crosses)

[![RunTests](https://github.com/vyalovvldmr/onx/actions/workflows/run_tests.yml/badge.svg)](https://github.com/vyalovvldmr/onx/actions/workflows/run_tests.yml)

Client-server Tic Tac Toe (Noughts & Crosses) terminal based, online game through websockets.

## Requires

Python 3.10

## Install

```
$ pip install onx
```

## Play Game

```
$ onx
```

![TUI screenshot 1](static/screen1.png)

Command line option `-g` or `--grid-size` changes grid size.
Option `-w` or `--wining-length` changes winning sequence length.
Option `-h` or `--help` prints help.

```
$ onx -g14 -w3
```

![TUI screenshot 1](static/screen2.png)

## Run Server and Client Locally

Set up env variables.

```
$ export LOCALHOST="0.0.0.0"
$ export PORT=8888
```

Run server.

```
$ onx -d
```

Run client.

```
$ onx
```

## Run Tests

```
$ git clone git@github.com:vyalow/onx.git
$ cd onx
$ pip install -r requirements.txt -r requirements-dev.txt
$ pytest --cov
```

## TODO

- [x] Bump up Python version from 3.5 to 3.10
- [x] Fix tests stability after bumping aiohttp from 1.3 to 3.8
- [x] Set up code linting
- [x] Set up mypy
- [ ] Fix aiohttp deprecations
- [x] Better client
- [x] Add to PyPI
- [x] Heroku deployment
- [ ] Migrate from aiohttp to starlette or migrate from websockets to gRPC
- [x] Expand play board
- [ ] Add gameplay with a computer

