Created
February 3, 2019 23:15
-
-
Save infrahumano/404abc1807000c04fafdab023c625936 to your computer and use it in GitHub Desktop.
Trying to immitate in python this: https://twitter.com/lorenschmidt/status/1091794209554792448
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
import numpy as np | |
side = '\({[<' | |
other_side = '/)}]>' | |
centered = '"*:|oOwWvVXx!^+=-08TYUuMA' | |
transformer = dict(list(zip(side, other_side)) + list(zip(other_side, side)) + list(zip(centered, centered))) | |
total = list(side + other_side + centered) | |
def row(centered_flower, size): | |
result = '' | |
if centered_flower: | |
result += np.random.choice(list(centered), 1)[0] | |
result += ''.join(np.random.choice(total, np.random.poisson(size))) | |
return result | |
def half_flower(centered_flower, flower_height): | |
flower = [] | |
for i in range(flower_height): | |
if i == 0: | |
flower.append(row(centered_flower, 1)) | |
else: | |
previous_row_len = len(flower[i-1]) | |
flower.append(row(centered_flower, previous_row_len + 0.1)) | |
return flower[::-1] | |
def reverse_row(centered_flower, flower_row): | |
result = flower_row[::][1:] if centered_flower else flower_row[::] | |
return ''.join([transformer[c] for c in result])[::-1] | |
def margin(flower_no_margin): | |
lengths = [int((len(r) - centered_flower)/2) for r in flower_no_margin] | |
max_len = max(lengths) | |
return [' ' * (max_len - l) + r + ' ' * (max_len - l) for l, r in zip(lengths, flower_no_margin)] | |
def gen_flower(): | |
half = half_flower(1, 7) | |
return margin([a + b for a,b in zip([reverse_row(centered_flower, r) for r in half], half)]) | |
def main(): | |
for i in range(4): | |
for r in zip(*[gen_flower() for i in range(4)]): | |
print(' '.join(r)) | |
print('\n') | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment