我希望this was wrong try again!
在输入值不在板上时打印,但是不知怎么的,当我选择板外的值时,代码会中断,而不是显示打印的消息
def legalMove(self):
if self.board[startX][startY] != False:
def playerMove(self,tile):
if self.legalMove(tile, x, y) == False:
continue
else:
break
else:
print('this was wrong try again!.')
return [x, y]
错误
if self.board[startX][startY] != ' ' or not self.isOnBoard(startX, startY): IndexError: list index out of range
您应该交换条件中的语句,这样您就不会出现这样的错误:
尽管我建议你在
playerMove
方法中进行打印,这样你就可以重用legalMove
方法,例如如果你以后要构建一个AI播放器的话此外,Python允许将比较链接在一起,比如
0 <= x < 8
,这更为优雅最后,虽然我可能错了,但我认为有效的移动应该只在
0
到7
(包括在内)之间。所以validMove = '0 1 2 3 4 5 6 7'.split()
相关问题 更多 >
编程相关推荐