棋盘游戏库

pykhet的Python项目详细描述


https://travis-ci.org/TheWiseLion/pykhet.svg?branch=master

简介

用python实现的khet棋盘游戏逻辑和结构。同时也展示了基于对抗性搜索的算法。

frompykhet.components.typesimportTeamColorfrompykhet.games.game_typesimportClassicGameimportrandomfrompykhet.solvers.minmaximportMinmaxSolver# Create a game with classic piece placementgame=ClassicGame()# Get all valid silver movessilver_moves=game.get_available_moves(TeamColor.silver)# Randomly Play Onegame.apply_move(random.choice(silver_moves))# Finish the turn by applying the lasergame.apply_laser(TeamColor.silver)# Use adversarial search to pick a movesolver=MinmaxSolver()move=solver.get_move(game,TeamColor.red)game.apply_move(move)game.apply_laser(TeamColor.red)

序列化

有足够的支持将对象的状态序列化为字典。有助于作为json轻松存储。

frompykhet.components.typesimportTeamColor,Piecefrompykhet.games.game_typesimportClassicGameimportrandomfrompykhet.solvers.minmaximportMinmaxSolver# Create a game with classic piece placementgame=ClassicGame()# Serialize the board (list of serialized piece positions, orientations, and colors)squares=game.to_serialized_squares()# Deserialize the boardGame.from_serialized_squares(squares)# Serialize a piecesp1=Piece(PieceType.scarab,TeamColor.silver,Orientation.down).to_dictionary()# Deserialize a piecesame_piece=Piece.from_dictionary(p1)

电路板布局

KHET板和工件布局如下所示:

https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/board-khet.png

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Java中在单个列表中存储多个数据库列值   java在两个spring boot应用程序之间传输大数据   如何在Java HttpsURLConnection中增加头大小限制?   聚焦Java,点击画面外的(机器人)   axis如何通过java调用NetDocuments SOAP API?   java getBundle找不到属性文件   Java EE项目中的tomcat Log4j2配置文件   java BrowserField Cookie删除   带有报警管理器的java Android上下文   java两个日期之间的时间差   java如何在Gradle中查找/删除未使用的依赖项   多@ManagedBeans代码中的java重用对象及其方法   java将jsp页面的值与数据库值空指针异常进行比较   JavaJPanel和GridBagLayout   java使用请求。servlet中的getSession()将数据获取到servlet的最佳方法?   java当我重新打开应用程序arraylist时没有存储来自volley的值