def __add__(self, move):
if isinstance(move, (str, basestring)):
return self + Move(move)
elif move is None:
return self
elif isinstance(move, Move):
if self.face != move.face:
raise ValueError("Only same faces can be added")
if self.clockwise and move.counterclockwise:
return None
if self.double and move.double:
return None
offset = (
(self.clockwise + (self.double * 2) + (self.counterclockwise * 3)) +
(move.clockwise + (move.double * 2) + (move.counterclockwise * 3))
) % 4
if offset == 0:
return None
return Move(self.face + [None, "", "2", "'"][offset])
else:
raise ValueError("Unable to add %s and %s" %(self.raw, str(move)))
评论列表
文章目录