A simple tic tac toe game implementation
Project description
TTT-game
A simple tic tac toe game implementation
Usage
Installation
Testing builds:
python -m pip install -i https://test.pypi.org/simple/ ttt-game
Production builds:
python -m pip install ttt-game
ttt-game module exports main game class Game and Pl and Tr enums to simplify typing.
from ttt_game import Game, Tr, Pl
Game class
class Game:
"""
Board indexes preview:
[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]]
Board array itself:
[Tr.E, Tr.E, Tr.E, Tr.E, Tr.E, Tr.E, Tr.E, Tr.E, Tr.E]
"""
_board: List[Tr]
def get_board(self) -> List[Tr]:
"""
Returns copy of game board. Use it to display board in UI.
"""
def check_move(self, pos: int) -> bool:
"""
Checks if board cell empty
"""
def check_filled(self) -> bool:
"""
Checks if game board is filled
"""
def check_win(self, pos: int) -> bool:
"""
Checks if this move will make player a winner.
"""
def insert(self, pos: int, who: Tr) -> None:
"""
Sets game board's cell to specified value. Better use `move` method when possible
"""
def move(self, pos: int, who: Pl) -> bool:
"""
Sets game board cell to specified value when possible. It also returns true if player has won.
"""
def get_free(self) -> Tuple[int]:
"""
Returns indexes of free game board cells
"""
To use it you should initialize it like below:
game = Game()
To make move, below code is listed. result variable will contain True if Pl.X player won the game.
result = game.move(1, Tr.X)
if result:
print("Congrats, X player won!")
You also can get game board array with get_board method. To visualize it you can customize code listed below.
board = game.get_board()
for i in range(9):
print(board[i], end=" ")
if i % 3 == 2:
print("\n", end="")
"""
output: Tr.E Tr.X Tr.E
Tr.E Tr.E Tr.E
Tr.E Tr.E Tr.E
"""
Pl and Tr Enums
Pl has two members: X and O meaning X and O players.
class Pl(Enum):
X = 1
O = 2
Tr enum has all members of Pl plus E entry meaning empty cell.
class Tr(Enum):
E = 0
X = Pl.X
O = Pl.O
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ttt_game-0.1.0.tar.gz.
File metadata
- Download URL: ttt_game-0.1.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
227754a5301baac301e9132393a23c32789fcf224a9635e00994a3ebfa9ce065
|
|
| MD5 |
a1e03a271129f142d5f05db26bba9725
|
|
| BLAKE2b-256 |
9823c06db4f140bc24902eee94d9ca11200e05436ff1c517d2b0103d25c891f5
|
File details
Details for the file ttt_game-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ttt_game-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
424e2487271182a4fb890ba549115399d8a8f5c0d772f66b96ad384aa385d333
|
|
| MD5 |
2229f86a625f5abc39a3fed63cae4948
|
|
| BLAKE2b-256 |
15bad8575a3a5cd73c363624252004a703400d614873ba7c1c540d8a189fd19b
|