Python ZeroDivisionError:在chess.py中被零除

Python ZeroDivisionError:在chess.py中被零除,python,pygame,chess,Python,Pygame,Chess,我已经创建了一个国际象棋观看视频,当它完成时,我得到了一个错误 ZeroDivision错误:被零除 我的全部代码: board=['Rb','Nb','Bb','Qb','Kb','Bb','Nb','Rb'],#8 [Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb'],#7 [ 0, 0, 0, 0, 0, 0, 0, 0], #6 [ 0, 0, 0, 0, 0, 0, 0,

我已经创建了一个国际象棋观看视频,当它完成时,我得到了一个错误

ZeroDivision错误:被零除

我的全部代码:

board=['Rb','Nb','Bb','Qb','Kb','Bb','Nb','Rb'],#8
[Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb',Pb'],#7
[  0,    0,    0,    0,    0,    0,    0,    0],  #6
[  0,    0,    0,    0,    0,    0,    0,    0],  #5
[  0,    0,    0,    0,    0,    0,    0,    0],  #4
[  0,    0,    0,    0,    0,    0,    0,    0],  #3
[Pw',Pw',Pw',Pw',Pw',Pw',Pw',Pw',Pw',Pw',Pw'],#2
[Rw',Nw',Bw',Qw',Kw',Bw',Nw',Rw']#1
#a b c d e f g h
def ISOCUPIEDBY(板、x、y、颜色):
如果板[x/y]==0:
#广场上什么也没有。
返回错误
这是完全的错误

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "chess.py", line 1054, in negamax
    moves = allMoves(position, colorsign)
  File "chess.py", line 842, in allMoves
    listofpieces = getallpieces(position,color)
  File "chess.py", line 831, in getallpieces
    if isOccupiedby(board,i,j,color):
  File "chess.py", line 458, in isOccupiedby
    if board[x / y]==0:
ZeroDivisionError: division by zero

Traceback (most recent call last):
  File "chess.py", line 1713, in <module>
    createShades([])
  File "chess.py", line 955, in createShades
    if isCheck(position,'white'):
  File "chess.py", line 801, in isCheck
    return isAttackedby(position,x,y,enemy)
  File "chess.py", line 496, in isAttackedby
    findPossibleSquares(position,x,y,True)) #The true argument
  File "chess.py", line 569, in findPossibleSquares
    if isOccupiedby(board,kx,y,enemy_color):
  File "chess.py", line 458, in isOccupiedby
    if board[x / y]==0:
ZeroDivisionError: division by zero
线程1中的异常: 回溯(最近一次呼叫最后一次): 文件“C:\Python37\lib\threading.py”,第926行,在\u bootstrap\u内部 self.run() 文件“C:\Python37\lib\threading.py”,第870行,正在运行 自我目标(*自我参数,**自我参数) negamax文件“chess.py”,第1054行 移动=所有移动(位置、颜色符号) 文件“chess.py”,第842行,在allMoves中 listofpieces=getallpieces(位置、颜色) 文件“chess.py”,第831行,在getallpieces中 如果按(电路板、i、j、颜色)分类: ISOCUPIEDBY中的文件“chess.py”,第458行 如果板[x/y]==0: ZeroDivision错误:被零除 回溯(最近一次呼叫最后一次): 文件“chess.py”,第1713行,在 createShades([]) 文件“chess.py”,第955行,在createShades中 如果检查(位置为“白色”): 文件“chess.py”,第801行,在isCheck中 返回isAttackedby(位置,x,y,敌人) 文件“chess.py”,第496行,在isAttackedby中 findPossibleSquares(位置,x,y,True))#真参数 文件“chess.py”,第569行,在findPossibleSquares中 如果按(电路板、kx、y、敌方颜色): ISOCUPIEDBY中的文件“chess.py”,第458行 如果板[x/y]==0: ZeroDivision错误:被零除
/
是除法运算符。如果除数为零,您将得到一个异常

很可能您试图访问网格的一个元素。如果
board
是列表列表列表,则必须连续使用订阅操作符两次。由于网格是按行组织的,第一个订阅索引是
y
,第二个是
x

如果线路板[x/y]==0:

如果板[y][x]==0:

x和y是棋盘坐标吗?@Rabbid我说函数参数不是完整的代码