Я бы начал с вывода документации help() по каждой из используемых функций:
Surface((width, height), flags=0, depth=0, masks=None) -> Surface
Surface((width, height), flags=0, Surface) -> Surface
pygame object for representing images
line(surface, color, start_pos, end_pos) -> Rect
line(surface, color, start_pos, end_pos, width=1) -> Rect
draw a straight line
smoothscale(surface, size, dest_surface=None) -> Surface
scale a surface to an arbitrary size smoothly
Не понимая какие аргументы принимает и что возвращает каждая функция не возможно понять алгоритма.