Skip to content

Instantly share code, notes, and snippets.

@waveform80
Created March 13, 2018 13:59
Show Gist options
  • Save waveform80/0b542b155477bc5bb68df4bca2e4f64b to your computer and use it in GitHub Desktop.
Save waveform80/0b542b155477bc5bb68df4bca2e4f64b 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)
cmds = (
'd50u25r25u25d50R35l25u25r25d12l25R35D13u50R10d50R10u25r25d25l25R55'
'U50d50r15u25d25r15u50R10D25d25r25u25l25R35d25u25r25R10U25d50R35U25l25d25r25u50'
)
p = re.split(r'(\d+)', cmds)
cd = 'r'
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