Python ZeroDivisionError:在chess.py中被零除
我已经创建了一个国际象棋观看视频,当它完成时,我得到了一个错误 ZeroDivision错误:被零除 我的全部代码: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,
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我说函数参数不是完整的代码