我正在写一个象棋程序。自我人在piece类中,只适用于黑色,而不适用于白色。我假设它使用的是init值,因为我可以将它切换为白色并解决问题。在movecalc中,它不断地被定义,所以我认为它是从那里来的。我试着把self.pieces=Pieces()
放在init中,但它给了我一个错误“RecursionError:调用Python对象时超过了最大递归深度”是的,我知道这个错误来自于将self.game=Game()
放在piece类中,而将self.piece=Piece()
放在game类中,会使pieces成为game的子类吗?你知道吗
class Pieces():
def __init__(self, empassant=(-5,-5)):
super().__init__()
self.empassant=empassant
self.game=Game()
self.white=White()
self.black=Black()
class Game ():
def __init__(self):
super().__init__()
self.white=White()
self.black=Black()
self.turn="WHITE"
self.pieces=Pieces()
self.player=self.white
self.opponent=self.black
self.person=self.white
def move(self):
if self.turn=="BLACK":
self.player=self.black
self.opponent=self.white
else:
self.player=self.white
self.opponent=self.black
self.person=self.opponent
self.movecalc()#calculates opponents moves
self.person=self.player#calculates players moves
self.movecalc()
def movecalc(self):
# it was initially: pieces=Pieces()
目前没有回答
相关问题 更多 >
编程相关推荐