| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- class Tortoise:
- def __init__(self, x=0, y=0, s=1):
- self.x = x
- self.y = y
- self.s = s
- def go_up(self):
- """Перемещает черепашку вверх на s клеточек."""
- self.y += self.s
- def go_down(self):
- """Перемещает черепашку вниз на s клеточек."""
- self.y -= self.s
- def go_left(self):
- """Перемещает черепашку влево на s клеточек."""
- self.x -= self.s
- def go_right(self):
- """Перемещает черепашку вправо на s клеточек."""
- self.x += self.s
- def evolve(self):
- """Увеличивает шаг на 1."""
- self.s += 1
- def degrade(self):
- """Уменьшает шаг на 1 или выбрасывает ошибку, если шаг ≤ 0."""
- if self.s <= 1:
- raise ValueError("Шаг не может стать ≤ 0")
- self.s -= 1
- def count_moves(self, x2, y2):
- """Возвращает минимальное количество действий для достижения точки (x2, y2)."""
- dx = abs(x2 - self.x)
- dy = abs(y2 - self.y)
- return max((dx + self.s - 1) // self.s, (dy + self.s - 1) // self.s)
- # Пример использования
- tortoise = Tortoise()
- tortoise.go_up()
- tortoise.go_right()
- print(tortoise.x, tortoise.y) # Output: 1 1
- tortoise.evolve()
- print(tortoise.s) # Output: 2
- tortoise.go_up()
- print(tortoise.y) # Output: 3
- print(tortoise.count_moves(10, 10)) # Output: 5
|