Привет, не могу понять принцип движения по оси Y? По X: к переменной просто прибавляется текущее время, тем самым идет плавное увеличение на 1.
А вот по Y. выполняя первую функцию def mod15(n), идет простое возвращение текущего времени до момента while n >= 15:, далее сброс n -= 15.
Т.е. первая секунда < 15, мы её возвращаем, и она попадает сюда y = 10 + 3 * mod15(time), т.е.
y = 10 + 3 * 1 , по идее координата должна быть 13, затем на 2 секунде 16 и тд. Но герой идет строго прибавляя по 1 к оси Y
Объясните пожалуйста, где я ошибся в понимании.
П.с. Код то работает, но непонятно как (:
# Сбеги из Долины смерти!
# Двигайся зигзагом с помощью функций получения остатка от деления.
# Эта функция возвращает значение от 0 до 15:
def mod15(n):
while n >= 15:
n -= 15
return n
# Эта функция должна возвращать значение от 0 до 9:
def mod9(n):
# Используй цикл while, чтобы изменять параметры функции перед тем как вернуть их.
while n >= 9:
n -= 9
return n
# Не изменяй код ниже:
while True:
time = hero.time
if time < 30:
y = 10 + 3 * mod15(time)
else:
y = 20 + 3 * mod9(time)
x = 10 + time
hero.moveXY(x, y)