A library simplifying the process of embedding a TicTacToe game in your python project.
Project description
Lemon-TicTacToe
A tic tac toe python library aiming to make it easy to implement TicTacToe into whatever project you like.
My first attempt at making a python library.
Features
- Creating TicTacToe games of various board sizes
- Interacting with the game without a forced event loop
Requirements
- Python 3.9 or higher
Getting started
pip install lemon-tictactoe
Usage
Setting up the game
You can easily create a game by instantiating the Game class.
The default options will result in a traditional TicTacToe game.
from lemon_tictactoe import Game
game = Game()
But you are also able to pass various configuration options to get a more custom experience:
from lemon_tictactoe import Game
game = Game(board_size=10, player_count=5, starting_player=2)
Grid coordinates
The coordinates (0, 0) are at the top left of the board.
Here is a visual representation of the board coordinates (x, y) with board_size=3:
Playing moves
You can use the Game.move method, specifying a player and x,y coordinates to play a move.
This will make Player 1 play their move on x=1 and y=2:
win = game.move(1, 1, 2)
The move method will return True if it lead to a win of the specified player.
Handling invalid move input
Sometimes players might do moves which are not allowed, you can catch errors to handle these cases:
from lemon_tictactoe import Game, CellOccupiedError, WrongPlayerError
game = Game()
try:
game.move(1, 1, 2)
except ValueError:
print("Move out of bounds or otherwise invalid input.")
except CellOccupiedError:
print("The specified cell is already occupied.")
except WrongPlayerError:
print("Wrong player tried to play a turn.")
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
Hashes for lemon_tictactoe-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82a5ab6acac13684c0b03e6d50e793ad8bc720b01b6913bd8694ddcf20340374 |
|
MD5 | 7cd30b2b833b31af64721958892a65e6 |
|
BLAKE2b-256 | a9ce1fa38a8db39fdd365aaf8e79f4a0ca1406fa16323e2979e0597005f4458b |