📜  Python中的国际象棋库

📅  最后修改于: 2022-05-13 01:55:09.955000             🧑  作者: Mango

Python中的国际象棋库

国际象棋模块是一个纯Python国际象棋库,具有移动生成、移动验证和对常见格式的支持。我们可以用它下棋。它将帮助我们移动王后、典当、主教和骑士。我们需要了解国际象棋的基础知识才能用它下棋。这个模块在Python中完成了在真实游戏中可能的所有任务。

安装:

pip install chess

我们只需要导入国际象棋库,我们就可以下棋了。当我们导入国际象棋库时,我们必须调用名为 board 的函数,以便我们可以看到棋盘的状态。

下面是调用国际象棋库函数板的代码。

Python3
# import required module
import chess
 
# create board object
board=chess.Board()
 
# display chess board
print(board)


Python3
# legal moves
board.legal_moves


Python3
# moving players
board.push_san("e4")
# It means moving the particular piece at
# e place to 4th position
  
# Display chess board 
print(board)


Python3
# Verifying check mate
board.is_checkmate()


Python3
# Verifying stalemate
board.is_stalemate()


Python3
# code
board.is_check()


Python3
# code
board.is_fivefold_repetition()
board.is_seventyfive_moves()



左边的图片是gui表示,左边的图片是ASCII Board

我们可以使用以下代码找出合法的举动:

蟒蛇3

# legal moves
board.legal_moves

输出:

如果我们必须移动任何一块,我们可以使用上面的命令检查我们可以移动的移动。

移动玩家:

蟒蛇3

# moving players
board.push_san("e4")
# It means moving the particular piece at
# e place to 4th position
  
# Display chess board 
print(board)

输出:

改后动。

要检查将死:

蟒蛇3

# Verifying check mate
board.is_checkmate()

输出:

检查是否陷入僵局:

僵局是国际象棋游戏中的一种情况,即轮到移动的玩家没有受到检查但没有合法移动。国际象棋规则规定,当出现僵局时,比赛以平局结束。

蟒蛇3

# Verifying stalemate
board.is_stalemate()

输出:

It will return a boolean value a TRUE or FALSE.

我们也可以借助上述函数检测检查:

蟒蛇3

# code
board.is_check()

输出:

It will return a boolean value a TRUE or FALSE.

根据 2014 年 7 月的新规则,一旦出现 5 次重复或有 75 步而没有推兵或俘获,游戏将以平局结束(即使没有索赔)。其他结束游戏的方式优先。所以也有检查这些东西的方法=

蟒蛇3

# code
board.is_fivefold_repetition()
board.is_seventyfive_moves()

输出:

Both of it will return a boolean value a TRUE or FALSE.