Advertisement
Guest User

quinehypercube

a guest
Aug 26th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. ite=2
  2. l= ['f = open("quineout"+str(ite)+".py", "w")',
  3.     'f.write("ite="+str(ite+1)+"\\n")',
  4.     'f.write("l="+ str(l)+"\\n")',
  5.     'from PIL import Image',
  6.     'def identity(n):',
  7.     '    M=[[255 for i in range(n)] for i in range(n)]',
  8.     '    for x in range(n): M[x][x]=0',
  9.     '    return M',
  10.     'def hyp(d):',
  11.     '    if d==2:',
  12.     '        return [[255,0,255,0],[0,255,0,255],[255,0,255,0],[0,255,0,255]]',
  13.     '    else:',
  14.     '        M,a = [],hyp(d-1)','        for x in range(len(a)):',
  15.     '           for i in identity(2**(d-1))[x]: a[x].append(i)',
  16.     '        t,b=hyp(d-1),identity(2**(d-1))',
  17.     '        for y in range(len(t)):',
  18.     '            for n in t[y]:b[y].append(n)',
  19.     '        for m in a: M.append(m)',
  20.     '        for k in b: M.append(k)',
  21.     '        return M',
  22.     '',
  23.     'M=hyp(ite)',
  24.     'cube=Image.new("1", (len(M),len(M)),"white")',
  25.     'pix=cube.load()',
  26.     'for q in range(2**ite):',
  27.     '    for w in range(2**ite): pix[q,w]=M[q][w]',
  28.     'cube.save("hypercube"+str(ite)+".bmp","bmp")','for a in l:',
  29.     '    f.write(a+"\\n")',
  30.     'f.close()',
  31.     'if ite < 11: execfile("quineout"+str(ite)+".py")']
  32. f = open("quineout"+str(ite)+".py", "w")
  33. f.write("ite="+str(ite+1)+"\n")
  34. f.write("l="+ str(l)+"\n")
  35. from PIL import Image
  36. def identity(n):
  37.     M=[[255 for i in range(n)] for i in range(n)]
  38.     for x in range(n): M[x][x]=0
  39.     return M
  40. def hyp(d):
  41.     if d==2:
  42.         return [[255,0,255,0],[0,255,0,255],[255,0,255,0],[0,255,0,255]]
  43.     else:
  44.         M,a = [],hyp(d-1)
  45.         for x in range(len(a)):
  46.             for i in identity(2**(d-1))[x]: a[x].append(i)
  47.        
  48.         t,b=hyp(d-1),identity(2**(d-1))
  49.         for y in range(len(t)):
  50.             for n in t[y]:b[y].append(n)
  51.    
  52.         for m in a: M.append(m)
  53.         for k in b: M.append(k)            
  54.         return M
  55.  
  56. M=hyp(ite)
  57. cube=Image.new('1', (len(M),len(M)),"white")
  58. pix=cube.load()
  59. for q in range(2**ite):
  60.     for w in range(2**ite): pix[q,w]=M[q][w]
  61. cube.save("hypercube"+str(ite)+".bmp","bmp")
  62. for a in l:
  63.     f.write(a+"\n")
  64. f.close()
  65. if ite <11: execfile("quineout"+str(ite)+".py")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement