Advertisement
bitpwner

Code to generate cops and robbers bowling.

Jan 17th, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. import random
  2.  
  3. max_len = 0
  4. max_final = ""
  5. for k in range(500):
  6.     middle = "[v for v in range(2,x*78) if all([v%t>0for t in range(2,v)])][:x]"
  7.     g=0
  8.     loop = True
  9.     final = ""
  10.     safe_chars = list(" !#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~")
  11.     random.shuffle(safe_chars)
  12.     while loop:
  13.         before = """lambda x:eval(eval("'"""
  14.         after = """'"+"[::2].decode('base64').decode('zip')"*"""+`g`+"""))"""
  15.         next_middle = middle.encode('zlib').encode("base64").replace("\n","")
  16.         curr_func = before + middle + after
  17.         char_counts = [(before + next_middle + after).count(char) for char in safe_chars]
  18.         leftovers = []
  19.         for count, char in zip(char_counts, safe_chars):
  20.             leftover_count = 100-count
  21.             if leftover_count >= 0:
  22.                 leftovers.extend(char*leftover_count)
  23.             else:
  24.                 loop = False
  25.                 break
  26.         if loop:
  27.             next_middle_chars = [next_middle[0]]
  28.             if g>6:
  29.                 random.shuffle(leftovers)
  30.             for char in next_middle[1:]:
  31.                 if leftovers:
  32.                     next_middle_chars.extend([leftovers.pop(), char])
  33.                 else:
  34.                     loop = False
  35.                     final = curr_func
  36.                     break
  37.             middle = ''.join(next_middle_chars)
  38.         else:
  39.             final = curr_func
  40.         g+=1
  41.     if len(final) > max_len:
  42.         max_final = final
  43.         max_len = len(final)
  44.  
  45.  
  46. print all(max_final.count(chr(c))<=100for c in range(127))
  47. exec "f="+max_final
  48. print f(10)
  49. print max_final
  50. print len(max_final)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement