Introduction
The Khet board game logic and structures implemented in python. Also exposes adversarial search based algorithms.
from pykhet.components.types import TeamColor
from pykhet.games.game_types import ClassicGame
import random
from pykhet.solvers.minmax import MinmaxSolver
# Create a game with classic piece placement
game = ClassicGame()
# Get all valid silver moves
silver_moves = game.get_available_moves(TeamColor.silver)
# Randomly Play One
game.apply_move(random.choice(silver_moves))
# Finish the turn by applying the laser
game.apply_laser(TeamColor.silver)
# Use adversarial search to pick a move
solver = MinmaxSolver()
move = solver.get_move(game, TeamColor.red)
game.apply_move(move)
game.apply_laser(TeamColor.red)
Serialization
There is ample support to serializing the state of objects as dictionaries. Useful for easy storage as json.
from pykhet.components.types import TeamColor, Piece
from pykhet.games.game_types import ClassicGame
import random
from pykhet.solvers.minmax import MinmaxSolver
# Create a game with classic piece placement
game = ClassicGame()
# Serialize the board (list of serialized piece positions, orientations, and colors)
squares = game.to_serialized_squares()
# Deserialize the board
Game.from_serialized_squares(squares)
# Serialize a pieces
p1 = Piece(PieceType.scarab, TeamColor.silver, Orientation.down).to_dictionary()
# Deserialize a piece
same_piece = Piece.from_dictionary(p1)
Board Layout
The khet board and piece layout is represented below:
Adversarial Search
Provided is a very basic adversarial search algorithm that works with a low number of iterations.
Metadata
Release files for pykhet 0.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pykhet-0.18.tar.gz | 18.1 kB | Details |
Release files / pykhet-0.18.tar.gz
| Download URL | pykhet-0.18.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d42ff2fec60191d0cccb1426632c9f9a40b8c0019a3f8dd2f9c1b58d38a556c4
|
|
BLAKE2b-256 checksum How to use checksums |
f179217c27313e507fc984984b5e73cc226efd3de5978718bf573dfa17c98f82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |