fork download
  1. def display(d):
  2. print '\n'.join([''.join(str(q) for q in p) for p in d])
  3. print '-----'
  4.  
  5. def tick(d):
  6. e = [x[:] for x in d]
  7. r=range(-4,4)
  8. for i in r:
  9. e[i]=list(e[i])
  10. for y in r:
  11. for x in r:
  12. c=[d[y-1][x-1],d[y-1][x],d[y-1][x+1],d[y][x-1],d[y][x+1],d[y+1][x-1],d[y+1][x],d[y+1][x+1]].count('■')
  13. if c<2 or c>3:
  14. e[y][x]='□'
  15. elif c==3:
  16. e[y][x]='■'
  17. d = e
  18. display(d)
  19. return d
  20.  
  21. d=[['□','□','□','□','□','□','□','□'],['□','□','■','□','□','□','□','□'],['□','□','□','■','□','□','□','□'],['□','■','■','■','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□']]
  22.  
  23. for i in range(3):
  24. d = tick(d)
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
□□□□□□□□
□□□□□□□□
□■□■□□□□
□□■■□□□□
□□■□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
-----
□□□□□□□□
□□□□□□□□
□□□■□□□□
□■□■□□□□
□□■■□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
-----
□□□□□□□□
□□□□□□□□
□□■□□□□□
□□□■■□□□
□□■■□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
-----