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
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 |