with.
Путь. Он имеет атрибут класса общая длина и атрибут экземпляра текущая координата, а также методы изменения текущей координаты, пройденного и оставшегося пути для каждого экземпляра. Машинка, которая имеет атрибуты остаток топлива, двигатель, и метод, получающий время, списывающий топливо и возвращающий очередное изменение пути. машинка - экземпляр класса Машинка, путь - экземпляр класса Путь и связываем их удобным нам образом, например даем машинке время и получаем от нее преодоленный отрезок. Передаем отрезок в путь и получаем текущую координату и остаток. Машинка с координатой, так и функцией узнать, где теперь машинка, в зависимости от того, что нам надо. Или устроить гонки, взяв несколько разных машинок и один путь.
draw, который проделывает с этим элементом то, что надо. прибавить, отнять и т.п. То же и у элементов изображения - их изменения делаются встроенными методами нарисовать, стереть.
аргумент tanker_path(бак) где считается сколько хватит бензина.вот это явно не там должно считаться. Бак не должен уметь рассчитать сколько хватит. Он же не калькулятор…