为什么Queen和Rook棋盘动作在棋盘上无法正常工作?

时间:2019-05-18 13:05:15

标签: python pygame

我试图编辑用Python 2开发的python国际象棋游戏。

可在以下github存储库上找到源代码:https://github.com/chattarajoy/Shatranj

一切都很好,直到我发现皇后区和白嘴鸦不能向右移动一个以上的正方形,我无法弄清楚是什么问题。

我尝试更改noblocks,但没有用。

我认为问题来自Queen和Rook类中的以下代码:

ChessPieces.py

for (x, y) in noblocks:
    for (a, b) in removeupto:
        if isfarther(self.square, a, x) and y == b and x in move_list:
             move_list.remove(x)
return move_list

那还来自:

helperfunctions.py

def isfarther(start, pos1, pos2):
    # Returns T/F whether pos2 is farther away than pos1

    if type(pos2) == int:  # for pawns
        return pos2 > distance_formula(start.center, pos1)
    else:
        return distance_formula(start.center, pos2) > distance_formula(start.center, pos1)

和distance_formula:

def distance_formula(pos1, pos2):
    # pos1 and pos2 are tuples of 2 numbers
    return math.sqrt(square(pos2[0] - pos1[0]) + square(pos2[1] - pos1[1]))

当我注释掉所有内容之前的线条似乎不错时,例如,当白女王/王后与黑人国王在同一列上时,不考虑它们之间的棋子,游戏就做出了Check

0 个答案:

没有答案