
import itertools

def moviments_zombie_1(it):
    xa, ya = next(it)
    for x, y in it:
        if x == xa:
            dist = abs(y - ya)
            if y > ya:
                direc = 'N'
            else:
                direc = 'S'
        else:
            dist = abs(x - xa)
            if x > xa:
                direc = 'E'
            else:
                direc = 'O'
        yield direc, dist 
        xa, ya = x, y

def moviments_zombie_2(it):

    def direc_dist(dos_punts):
        p1, p2 = dos_punts
        xa, ya = p1
        x, y = p2
        if x == xa:
            dist = abs(y - ya)
            if y > ya:
                direc = 'N'
            else:
                direc = 'S'
        else:
            dist = abs(x - xa)
            if x > xa:
                direc = 'E'
            else:
                direc = 'O'
        return direc, dist 
    
    it2 = itertools.pairwise(it)
    it3 = map(direc_dist, it2)
    return it3

# tria la solució que vols provar
moviments_zombie = moviments_zombie_1
