用于玩跳棋/跳棋标准游戏的库

imparaai-checkers的Python项目详细描述


一个python3库,可以用来玩跳棋/跳棋游戏。这只是一组可以在代码中使用的类,而不是一个交互式的shell checkersgame。

  • 版本:1.4.1

Build Status

假设

这些规则适用于竞争激烈的美国跳棋或英国跳棋。这意味着一个8x8板与力量捕捉和定期国王。

董事会上每个职位的编号为1到32。每个移动都表示为一个数组,有两个值:起始位置和结束位置。所以,如果你要开始一个新游戏,其中一个可用的移动是玩家1的[9, 13]。如果有一个捕获移动,则结束位置是捕获块将落在的位置(即,从其原始行开始的两行),这可能看起来像[13, 22]

每一个片段的移动都是完全不同的,即使移动是多个捕捉序列的一部分。在Portable Draughts Notation中,mutli捕捉序列通常用5-32来表示(对于一个特别长的跳跃序列),但是在某些情况下,可能有多个路径来实现最终位置。这个游戏需要一个明确的拼写出每个不同的移动在多捕捉系列。

用法

创建新游戏:

fromcheckersimportGamegame=Game()

看看轮到谁了:

game.whose_turn()#1 or 2

获取可能的移动:

game.get_possible_moves()#[[9, 13], [9, 14], [10, 14], [10, 15], [11, 15], [11, 16], [12, 16]]

移动:

game.move([9,13])

检查游戏是否结束:

game.is_over()#True or False

找出谁赢了:

game.get_winner()#None or 1 or 2

查看移动历史记录:

game.moves#[[int, int], [int, int], ...]

根据rules更改连续非捕捉移动限制(默认值40):

game.consecutive_noncapture_move_limit=20game.move_limit_reached()#True or False

复习黑板上的文章:

forpieceingame.board.pieces:piece.player#1 or 2piece.other_player#1 or 2piece.king#True or Falsepiece.captured#True or Falsepiece.position#1-32piece.get_possible_capture_moves()#[[int, int], [int, int], ...]piece.get_possible_positional_moves()#[[int, int], [int, int], ...]

测试

从根目录运行python3 -m unittest discover

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

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?