
from cock import *


def Shrk(msg=''):
    yield msg
    l = len(msg)
    if l > 2:
        for i in range(l-2):
            yield msg[0:l-i+1] + msg[-1]

def Pd(msg='',w=40,f=' '):
    return msg + (f * (w - len(msg)))

def Pds(msgLst=[],w=40,f=' '):
    return (    Pd(msg,w,f)
            for msg in msgLst   )

def ShipTravel(w=40,f=' '):
    rtts = '~>'
    ltts = '<~'
    rtps = '>'
    ltps = '<'
    trns = '+'
    mddl = w//2
    fll = f if len(f) >= w else f + f[-1] * (w-len(f))
    accel = [   fll[0:i] + rtts
                for i in range(mddl - len(rtts)) ]
    turn = [    fll[0:mddl] + rtps,
                fll[0:mddl] + trns,
                fll[0:mddl] + ltps  ]
    deccel =  [ fll[0:i] + ltts
                for i in range(mddl,w)  ]
    return (accel + turn + deccel)

def Planet():
    return Pds(Shrk('[Population]'))

if __name__ == '__main__':
    import dildo
    import cock
    s=dildo.Sh(40)
    #s=cock.Tt()
    for ln in Pds([
            ' $pace',
            '  $$pace',
            '   $$$pace',
            '     $$$$pace',
            '      $$$$$Pace',
            '       $$$$$$Pace',
            '        $ $$$$$Pace',
            '     Star  $ $$$$Pace',
            '  Star  Ship  $ $$$Pace',
            'tar  Ship  Stel   $$$Pace',
            '  Ship  Stellar    $ $$Pace',
            'hip  Stellar  Shotti   $$Pace',
            '  Stellar  Shottin     $  $Pace',
            'tellar  Shotting    Stap    $Pace',
            'lar  Shotting    Stapler      $Pace',
            '  Shotting    Stapler           $Pace',
            'hotting    Stapler                $}>==',
            'ting    Stapler                      ~>--',
            'g    Stapler                          ~>-',
            '  Stapler                             ~>',
            'tapler                               ~>',
            'ler                                ~>',
            '                               ~>',
            '                         ~>',
            '                  ~>',
            '            ~>',
            '      ~>',
            '~>',
                    ],40):
        s.Bk()
        s.Pt(ln)
        s.Wt(0.1)
    for ln in ShipTravel(40,'* '):
        s.Bk()
        s.Pt(ln)
        s.Wt(0.1)
    s.Xt()
