made Position more correct

This commit is contained in:
Lukas Nöllemeyer 2024-08-17 14:34:18 +02:00
parent b8562d49b5
commit 6a5e5d3137

View file

@ -22,22 +22,28 @@ class Position:
match direction:
case Position(x, y):
return self.__class__(self.x + x, self.y + y)
x, y = direction
return self.__class__(self.x + x, self.y + y)
case (x, y):
return self.__class__(self.x + x, self.y + y)
raise NotImplementedError
def __sub__(self, direction: tuple[int, int] | Position) -> Self:
match direction:
case Position(x, y):
return self.__class__(self.x - x, self.y - y)
x, y = direction
return self.__class__(self.x - x, self.y - y)
case (x, y):
return self.__class__(self.x - x, self.y - y)
raise NotImplementedError
def mod(self, other: tuple[int,int] | Position | int) -> Self:
match other:
case Position(x,y):
return self.__class__(self.x//x, self.y//y)
case int(x):
return self.__class__(self.x//x, self.y//x)
x,y = other
return self.__class__(self.x//x, self.y//y)
case (x, y):
return self.__class__(self.x//x, self.y//y)
raise NotImplementedError
def length(self):
return math.sqrt(self.x**2+self.y**2)