цикл for вовсе не нужен, потому что можно move_right(step), сразу сдвинется на нужное кол-во клеток. в стену врезается наверно потому, что нужно делать на один шаг меньше. если хотите оставить цикл for в функцию range передавайте не step, а step - 1.