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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pykhet-0.18.tar.gz
(18.1 kB
view details)
File details
Details for the file pykhet-0.18.tar.gz.
File metadata
- Download URL: pykhet-0.18.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d42ff2fec60191d0cccb1426632c9f9a40b8c0019a3f8dd2f9c1b58d38a556c4
|
|
| MD5 |
821d8bd1d2057280053b9206586dd87e
|
|
| BLAKE2b-256 |
f179217c27313e507fc984984b5e73cc226efd3de5978718bf573dfa17c98f82
|