Skip to content

Instantly share code, notes, and snippets.

@waveform80
Created March 13, 2018 14:27
Show Gist options
  • Save waveform80/33e926b7194fa132c9c6dd778aa67f19 to your computer and use it in GitHub Desktop.
Save waveform80/33e926b7194fa132c9c6dd778aa67f19 to your computer and use it in GitHub Desktop.
import re
from turtle import *
compass = {'r': 'd', 'd': 'l', 'l': 'u', 'u': 'r'}
angle = lambda a, b, r=0: r if a == b else angle(compass[a], b, r + 90)
letters = {
'H': 'u50d25r25u25d50',
'd': 'u25r25u25d50l25R25',
'e': 'u25r25d12l25D13r25',
'l': 'u50D50',
'o': 'u25r25d25l25R25',
'r': 'u25r25D25',
'w': 'U25d25r15u13D13r15u25D25',
' ': 'R20',
}
cd = 'r'
for c in 'Hello world':
p = re.split(r'(\d+)', letters[c] + 'R10')
for nd, dist in zip(p[::2], p[1::2]):
right(angle(cd, nd.lower()))
cd = nd.lower()
pu() if nd.isupper() else pd()
fd(int(dist))
ht()
input()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment