#!/usr/bin/python3 "Unicode Wang tiles." import random chars = '┄┊┌┐└┘┄┊┌┐└┘┄┊┌┐└┘├┤┬┴┼♥☆☽🌔' left = '100101100101100101011110000' right = '101010101010101010101110000' top = '010011010011010011110110000' bot = '011100011100011100111010000' def generate(ww, hh, initial=None): if initial is None: above = [random.choice(bot) for i in range(ww)] else: above = initial for i in range(hh): row = [] prev = random.choice(right) for j in range(ww): c = random.choice([k for k in range(len(chars)) if left[k] == prev and top[k] == above[j]]) prev = right[c] above[j] = bot[c] row.append(chars[c]) yield ''.join(row) def main(): for line in generate(80, 50): print(line) if __name__ == '__main__': main()