在我的国际象棋程序中,我有一个名为 Move 的类。它存储了这件作品的取放位置。什么是一块,什么是捕获的。
但问题是,为了获得被移动和捕获的部分,我将整个 Board 对象传递给 __init__ 方法。所以 IMO 似乎我应该将所有 Move 类方法存储到 Board 类中,它也有一个方法可以获取给定正方形上的一块。
我刚刚开始学习 OO,因此非常感谢有关此方面的一些建议,也许还有一些更通用的设计决策。
这是我觉得最好省略的 Move 类?
class Move(object):
def __init__(self, from_square, to_square, board):
""" Set up some move infromation variables. """
self.from_square = from_square
self.to_square = to_square
self.moved = board.getPiece(from_square)
self.captured = board.getPiece(to_square)
def getFromSquare(self):
""" Returns the square the piece is taken from. """
return self.from_square
def getToSquare(self):
""" Returns the square the piece is put. """
return self.to_square
def getMovedPiece(self):
""" Returns the piece that is moved. """
return self.moved
def getCapturedPiece(self):
""" Returns the piece that is captured. """
return self.captured