You need to enable JavaScript to run this app. Python-Chess中board.is_checkmate等状态判断始终返回True如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Python-Chess中board.is_checkmate等状态判断始终返回True如何解决?

问题触发原因

你调用的board.is_checkmate、board.is_stalemate、board.is_check、board.is_en_passant均为python-chess库中Board类的实例方法,不是静态属性。
Python中直接对未执行的方法对象做布尔判断时,非空的可调用对象布尔值恒为True,因此你的判断逻辑完全没有读取实际棋盘状态,无论棋盘处于什么状态都会判定成立。

解决方法

调用上述状态判断接口时添加括号,执行方法调用获取真实的状态布尔返回值,再做逻辑判断即可,修正后的代码示例如下:

import chess

board = chess.Board()

if board.is_checkmate():
    print("game over")

其余几个状态判断接口的调用方式同理,都需要添加括号执行:

  • board.is_stalemate()
  • board.is_check()
  • board.is_en_passant()

内容的提问来源于stack exchange,提问作者Ariel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 09:45:08