Created
May 23, 2012 02:54
-
-
Save radiosilence/2773003 to your computer and use it in GitHub Desktop.
Fun with recursive acronyms....See the output first as it's getting shown below for some reason.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" Excuse the horrendous code """ | |
COUNT = 90 | |
WORDS = ['pug', 'user', 'group'] | |
from collections import namedtuple | |
from copy import copy | |
g = [] | |
Point = namedtuple('Point', 'x y c') | |
for x in range(5): | |
print '' | |
def get(count, start, rx, ry, *args): | |
f = { | |
'x': { | |
True: { | |
True: lambda a, b: a - b, | |
False: lambda a, b: a + b | |
}, | |
False: { | |
True: lambda a, b: a - b, | |
False: lambda a, b: a + b, | |
} | |
}, | |
'y': { | |
True: { | |
True: lambda a, b: a + b, | |
False: lambda a, b: a + b | |
}, | |
False: { | |
True: lambda a, b: a - b, | |
False: lambda a, b: a - b, | |
} | |
} | |
} | |
x, y = start | |
points = [] | |
for word in args: | |
for l in word: | |
points.append(Point(x, y, l)) | |
y = f['y'][ry][rx](y, 1) | |
_, y = start | |
x = f['x'][ry][rx](x, 1) | |
x, y = start | |
new_x, new_y = f['x'][ry][rx](x, len(args[0]) - 1), f['y'][ry][rx](y, len(args[-1]) - 1) | |
count -= 1 | |
if (count % 15) == 0: | |
rx = not rx | |
if (count % 17) == 0: | |
ry = not ry | |
if (count % 37) == 0: | |
ry = not ry | |
if (count % 17) == 0: | |
ry = not ry | |
if count > 0: | |
points.extend(get(count, (new_x, new_y), rx, ry, *args)) | |
return points | |
def draw(points): | |
min_x = min([point.x for point in points]) | |
max_x = max([point.x for point in points]) | |
min_y = min([point.y for point in points]) | |
max_y = max([point.y for point in points]) | |
off_x = min_x * -1 | |
off_y = min_y * -1 | |
grid = [] | |
l = [] | |
for j in range(0, max_y + off_y + 1): | |
l.append(' ') | |
for i in range(0, max_x + off_x + 1): | |
grid.append(copy(l)) | |
for p in points: | |
grid[p.x + off_x][p.y + off_y] = p.c | |
for row in grid: | |
print "".join(row) | |
p = get(COUNT, (0, 0), False, False, *WORDS) | |
p += get(COUNT, (0, 0), False, True, *WORDS) | |
p += get(COUNT, (0, 0), True, False, *WORDS) | |
p += get(COUNT, (0, 0), True, True, *WORDS) | |
draw(p) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The code is pretty horrible, but these are the sort of things it generates from the acronym "pug user group": | |
puorgroupug gupuorg gupuorg groupug groupug gupuorgroup | |
resuseruser resuresuresuresu useruseruseruser resuresuser | |
groupugrgrgupuorg gupuorg gupuorg groupug groupug groupugrgroupugrg | |
user resuresuser resuresu resu user useruser resuseruser resu | |
groupug gupugrgroupugrg gupuorg gupuorg groupug groupug grgupuorgroupug gupuorg | |
user useruresuser resu resu user user resuseruseru resu | |
groupug groupugrgroupug gupuorg gupuorg groupug groupug gupuorgroupugrg gupuorg | |
user resuseru user resu resu user user resu useruser resu | |
groupug gupuorgroupugrgrgup grgup gupuorg groupug pugrg pugrgroupugrgroupug gupuorg | |
user resu useruresu user resu user resu useruseru user resu | |
gupuorg groupug pugrg groupugrgroupug gupuorgroupug gupuorgroupugrg grgup gupuorg groupug | |
resuresu user user resuseruseruser resuresuseruser resuresuseruser resu resu useruser | |
pugrg gupuorgroupug grgup gupuorgroupugrgroupug pugrgrgupuorgrgup gupuorgroupugrgroupug pugrg gupuorgroupug grgup | |
user resuser resu resu useruseru user useruser resuresu resu useruresu user user resuser resu | |
groupug groupugrg gupuorg gupuorgroupugrgroupugrgroupug groupugrgrgupuorg gupuorgroupugrgrgupuorgroupug groupug grgupuorg gupuorg | |
useruser resu resu resu user resu useru useruseruseruseruresuresu useru user resu user user user resuresu | |
groupugrg gupuorg gupuorg gupuorgroupug gupuorgroupugrgrgupugrgroupugrgrgupugrgroupugrgroupug gupuorgroupug groupug groupug grgupuorg | |
uresu resu resu resu user resu useruresuresuseruseruseruseruseru user resu user user user useru | |
grgupuorg gupuorg gupuorg pugrgroupug gupuorgroupugrgrgupuorgroupugrgroupugrgroupug gupuorgrgup groupug groupug groupugrg | |
uresu resuresu useruser resuresuseruseruresuseruseruseruseruser resuresu useruser useru | |
grgup gupuorg groupug gupuorgroupugrg gupug groupugrgroupug gupuorg groupug pugrg | |
useru resuresu useruser resuresuseruseruresuseruseruseruseruser resuresu useruser uresu | |
groupugrg gupuorg gupuorg pugrgroupug gupuorgrgupuorgroupugrgroupugrgroupugrgroupug gupuorgrgup groupug groupug grgupuorg | |
useru resu resu resu user resu useruresuresuseruseruseruseruseru user resu user user user uresu | |
groupugrg gupuorg gupuorg gupuorgroupug gupuorgroupugrgrgupugrgroupugrgrgupugrgroupugrgroupug gupuorgroupug groupug groupug grgupuorg | |
useruser resu resu resu user resu useru useruseruseruseruresuresu useru user resu user user user resuresu | |
groupug grgupuorg gupuorg gupuorgroupugrgroupugrgroupug groupugrgrgupuorg gupuorgroupugrgrgupuorgroupug groupug groupugrg gupuorg | |
user resuser resu resu useruseru user useruser resuresu resu useruresu user user resuser resu | |
pugrg gupuorgroupug grgup gupuorgroupugrgroupug pugrgrgupuorgrgup gupuorgrgupuorgroupug pugrg gupuorgroupug grgup | |
resuresu user user resuseruseruser resuresuseruser resuresuseruser resu resu useruser | |
gupuorg groupug pugrg groupugrgroupug gupuorgroupug gupuorgroupugrg grgup gupuorg groupug | |
user resu useruresu user resu user resu useruseru user resu | |
groupug gupuorgroupugrgrgup grgup gupuorg groupug pugrg pugrgroupugrgroupug gupuorg | |
user resuseru user resu resu user user resu useruser resu | |
groupug groupugrgroupug gupuorg gupuorg groupug groupug gupuorgroupugrg gupuorg | |
user useruresuser resu resu user user resuseruseru resu | |
groupug gupugrgroupugrg gupuorg gupuorg groupug groupug grgupuorgroupug gupuorg | |
user resuresuser resuresu resu user useruser resuseruser resu | |
groupugrgrgupuorg gupuorg gupuorg groupug groupug groupugrgroupugrg | |
resuseruser resuresuresuresu useruseruseruser resuresuser | |
puorgroupug gupuorg gupuorg groupug groupug gupuorgroup | |
group | |
useru | |
groupugrg | |
useru | |
groupugrg | |
useru | |
groupugrg | |
useru | |
groupugrg | |
useru | |
groupugrg | |
useru | |
groupugrg | |
useru | |
pugrg grgup | |
resu uresu | |
gupuorg grgupuorg | |
resu uresu | |
gupuorg grgupuorg | |
resu uresu | |
gupuorg grgupuorg | |
resu uresu | |
gupuorgrgupuorg | |
resuresu | |
grgupuorg | |
uresuser | |
grgupuorgroupug | |
uresu user | |
groupuorg groupug | |
useru user | |
groupugrg groupug | |
useru user | |
groupugrg groupug | |
useru user | |
pugrg grgup | |
uresu | |
grgupuorg | |
uresu | |
grgupuorg | |
uresu | |
grgupuorg | |
uresu | |
grgupuorg | |
uresu | |
grgupuorg | |
uresu | |
grgupuorg | |
uresu | |
puorg | |
groupug puorg groupug | |
useruser resu useruser | |
groupug groupug gupuorg groupug groupug | |
user user resu user user | |
groupug groupug gupuorgroupug groupug | |
user user resuser user | |
pugrg groupug grgupuorg groupug | |
resu useruser resu user | |
gupuorg groupug gupuorg groupug | |
resu useruser resu user | |
gupuorg groupug groupug gupuorg groupug | |
resu user user resu user | |
gupuorg pugrg groupug gupuorg groupug | |
resu resu user resu user | |
gupuorg gupuorg groupug gupuorg groupug groupug | |
resu resu user resu useruser user | |
gupuorg gupuorg groupug gupuorgroupug grgup groupug | |
resu resu user resuser resu user | |
gupuorg gupuorg groupug groupugrg gupuorg groupug | |
resu resu useruser resuresu user | |
groupug puorg gupuorg gupuorgroupug groupug gupuorg groupug | |
useruser resu resu resuseruseruseruser resuresu user | |
groupug groupug gupuorg gupuorgrgupuorgroupug groupugrg gupuorg grgup | |
user user resu resuser resuseruser resuser resu resu | |
groupug groupug gupuorgrgupuorg gupug grgupuorgroupug gupuorg gupuorg | |
user user resuser resuresuser resuser user resu resu | |
pugrg groupug grgupuorg gupuorgrgupuorgroupug groupug gupuorg gupuorg | |
resu useruser resuresuresuresuser user user resuresu | |
gupuorg groupug gupuorg gupuorgroupug groupug group gupuorg | |
resu useruser resuresu user user | |
gupuorg groupug groupugrg gupuorg groupug groupug | |
resu user resuser resu user user | |
gupuorg pugrg gupuorgroupug gupuorg groupug groupug | |
resu resuresu user resu user user | |
gupuorg gupuorg groupug gupuorg groupug groupug | |
resu user resu user user | |
gupuorg groupug gupuorg grgup groupug | |
resu user resu resu user | |
gupuorg groupug gupuorg gupuorg groupug | |
resu user resuresu user | |
gupuorg groupug gupuorg groupug | |
resu user resuresu user | |
gupuorg groupugrg gupuorg grgup | |
resu resuser resu resu | |
gupuorg gupuorgroupug gupuorg gupuorg | |
resu resu user resu resu | |
gupuorg gupuorg groupug gupuorg gupuorg | |
resuresu user resuresu | |
gupuorg group gupuorg | |
groupug | |
useruser | |
groupug groupug | |
user user | |
groupug grgup | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg groupug | |
user resu useruser | |
pugrg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug grgup | |
resuresu user resu | |
gupuorg groupug gupuorg | |
resuresu user resu | |
gupuorg gupuorg groupug gupuorg | |
resu resu user resu | |
puorg gupuorg groupug gupuorg groupug group | |
resu user resu useruser user | |
gupuorgroupug gupuorg groupug groupug groupug | |
resuser resu user useruser | |
grgupuorg gupuorg groupug groupug | |
user resu resu user useruser | |
groupug gupuorg gupuorg groupug groupug groupug | |
user resuresu user user user | |
groupug gupuorg groupug groupug grgup | |
user resuresu user user resu | |
groupug gupuorg gupuorgroupug groupug gupuorg | |
user resu resuser user resu | |
groupug gupuorg gupug groupug gupuorg | |
user resu resuser user resu | |
groupug gupuorg gupuorgroupug groupug gupuorg | |
user resu resu useruser resu | |
pugrg gupuorg gupuorg groupug gupuorg | |
resu resu resu useruser resu | |
gupuorg gupuorg gupuorg groupug groupug gupuorg | |
resuresu resu user user resu | |
gupuorg gupuorg groupug grgupuorg | |
resuresu resu user resuser | |
gupuorg gupuorg gupuorg groupug gupuorgroupug | |
resu resuresu user resu user | |
puorg gupuorg groupug gupuorg groupug group | |
user resu user user | |
groupug gupuorg groupug groupug | |
user resu useruser | |
groupug gupuorg groupug | |
user resu useruser | |
pugrg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug grgup | |
resuresu user resu | |
gupuorg groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
groupug gupuorg | |
user resu | |
pugrg gupuorg | |
resu resu | |
gupuorg gupuorg | |
resuresu | |
gupuorg | |
groupug groupug | |
useruser useruser | |
groupug groupug groupug groupug | |
user user user user | |
groupug groupug groupug groupug | |
user user user user | |
groupug groupug groupug groupug | |
user user user user | |
groupug groupug groupug groupug | |
user useruser user | |
groupug groupug groupug | |
user useruser user | |
groupug groupug groupug groupug | |
user user user user | |
groupug groupug groupug groupug | |
user user user user | |
groupug groupug groupug groupug groupug groupug | |
user useruseruser useruseruser user | |
pugrg groupug groupuorg groupug groupug grgup | |
resu user uresu uresu user resu | |
gupuorg groupug grgupuorg grgupuorg groupug gupuorg | |
resu user uresu uresu user resu | |
gupuorg groupug grgupuorg grgupuorg groupug gupuorg | |
resu user uresu uresu user resu | |
gupuorgroupug grgupuorgrgupuorg groupug gupuorg | |
resuser uresuresu user resu | |
grgupuorg grgupuorg grgupuorg | |
user resu uresuresu resuser | |
groupug gupuorg grgupuorgrgupuorg gupuorgroupug | |
user resu uresu uresu resu user | |
groupug gupuorg grgupuorg grgupuorg gupuorg groupug | |
user resu uresu uresu resu user | |
groupug gupuorg grgupuorg grgupuorg gupuorg groupug | |
user resu uresu uresu resu user | |
pugrg gupuorg gupuorg grgupuorg gupuorg grgup | |
resu resuresuresu resuresuresu resu | |
gupuorg gupuorg gupuorg gupuorg gupuorg gupuorg | |
resu resu resu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resu resu resu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resu resuresu resu | |
gupuorg gupuorg gupuorg | |
resu resuresu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resu resu resu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resu resu resu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resu resu resu resu | |
gupuorg gupuorg gupuorg gupuorg | |
resuresu resuresu | |
gupuorg gupuorg | |
groupug | |
useruser | |
groupug groupug | |
user user | |
groupug groupug groupug | |
user useruser user | |
puorgroupug groupug grgup | |
resuser user resu | |
grgupuorg grgupuorg | |
user resu resuser | |
puorg gupuorg gupuorgrgup | |
resu resuresu resu | |
gupuorg gupuorgroupugrg | |
resu resuseruser | |
gupuorgroupugrgroupug | |
resuseruser user | |
groupugrgroupug groupug | |
user useruser user | |
pugrgroupug groupug group | |
resuser user resu | |
grgupuorg grgupuorg | |
user resu resuser | |
pugrg gupuorg gupuorgroup | |
resu resuresu resu | |
gupuorg gupuorg gupuorg | |
resu resu | |
gupuorg gupuorg | |
resuresu | |
gupuorg | |
puorg groupug | |
resu useruser | |
gupuorgroupug groupug | |
resuser user | |
grgupuorg grgup | |
user resu resu | |
groupug gupuorg gupuorg | |
user resuresu | |
pugrg grgupuorg | |
resu useruser | |
gupuorgroupug groupug | |
resuser user | |
grgupuorg grgup | |
user resu resu | |
groupug gupuorg gupuorg | |
user resuresu | |
pugrg grgupuorg | |
resu useruser | |
gupuorgroupug groupug | |
resuser user | |
grgupuorg grgup | |
user resu resu | |
groupug gupuorg gupuorg | |
user resuresu | |
pugrg groupugrg grgup | |
resu useruser uresu | |
gupuorgroupug groupug grgupuorg | |
resuser useruresu | |
grgupugrg groupugrg | |
user resu uresuser | |
groupug gupuorgrgupuorgroupug | |
user resuresu user | |
pugrg groupugrg grgup | |
resu useruser resu | |
gupuorgroupugrgroupug gupuorg | |
resuseru user resu | |
grgupugrg groupugrg | |
useruresu resuser | |
groupugrg gupuorg gupuorgroupug | |
useru resuresu user | |
pugrg groupugrg grgup | |
useruser resu | |
groupug groupug gupuorg | |
user user resu | |
pugrg groupugrg | |
resu resuser | |
gupuorg gupuorgroupug | |
resuresu user | |
grgupuorg group | |
useruser resu | |
groupug groupug gupuorg | |
user user resu | |
pugrg groupugrg | |
resu resuser | |
gupuorg gupuorgroupug | |
resuresu user | |
groupugrg grgup | |
useruser resu | |
groupug groupug gupuorg | |
user user resu | |
pugrg groupugrg | |
resu resuser | |
gupuorg gupuorgroupug | |
resuresu user | |
gupuorg group | |
gupuorg gupuorg | |
resuresu resuresu | |
pugrg gupuorg pugrg gupuorg | |
user resu user resu | |
groupug gupuorgroupug gupuorg | |
user resu user resu | |
groupug gupuorgroupug grgup | |
user resu useruser | |
groupug gupuorgroupug | |
user resuseruser | |
groupuorg gupug groupuorg | |
resuresuser resu | |
gupuorgroupug gupuorg | |
resuresu user resu | |
pugrg gupuorgroupug gupuorg | |
user resu user resu | |
groupug gupuorgroupug gupuorg | |
user resu user resu | |
groupug grgup groupug grgup | |
useruser useruser | |
groupug groupug | |
gupuorg groupug | |
resuresu useruser | |
gupuorg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorgroupug groupug | |
resu resuser user | |
puorg gupug group | |
resu resuser user | |
gupuorg gupuorgroupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug groupug | |
resu resu user user | |
gupuorg gupuorg groupug groupug | |
resuresu useruser | |
gupuorg groupug | |
groupug gupuorg | |
useruser resuresu | |
groupug grgupuorg gupuorg | |
user resuser resu | |
pugrg gupuorgroupug grgup | |
resuresu useruser | |
gupuorg groupug | |
resuresu useruser | |
gupuorg gupuorgroupug groupug | |
resu resuser user | |
puorg gupug group | |
resu resuser user | |
gupuorg gupuorgroupug groupug | |
resuresu useruser | |
gupuorg groupug | |
resuresu useruser | |
pugrg gupuorgroupug grgup | |
user resuser resu | |
groupug grgupuorg gupuorg | |
useruser resuresu | |
groupug gupuorg |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment