Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Create Scrambled Text containing a Film Title
- import random
- letters = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
- # A list of Film Titles from which we will try and make usable scrambled text
- titles = ["Toy Story", "Silent Running", "Star Wars", "The Good Life", "Ground Hog Day", "High Noon",
- "Forrest Gump", "The Godfather", "Mary Poppins", "Great Expectations", "Romeo and Juliet",
- "Pulp Fiction", "Citizen Kane", "Thunderball", "Goldfinger", "The Searchers", "Top Gun"]
- def func(s, v, z): # s = film title, v = size of array to be created, z = initial letter for output
- s = z + s # add initial dummy letter to the film title
- s += "." # append a terminal full-stop
- x = 0
- arr = ['-'] * v # create an initial "empty" array where scrambled output will be created
- for j, c in enumerate(s):
- try:
- d = arr[x]
- except:
- return False # error. went outside of array
- if arr[x] != "-":
- return False # error:- this array slot already used
- arr[x] = c
- off = 1 + (ord(c) & 15) # compute increment or decrement
- if off % 2:
- x += off # add increment to index
- else:
- x -= off # subtract increment from index
- # scrambling was successful. fill the empty cells with random letters
- for j, c in enumerate(arr):
- if c == "-":
- arr[j] = random.choice(letters)
- mystring = "".join(arr)
- return mystring # return scrambled text
- for sent in titles: # For each film title ...
- for vv in range(40, 120, 5): # Try a variety of array lengths
- aa = random.choice(letters) # Choose a dummy starting letter
- res = func(sent, vv, aa) # Try and scramble this film title
- if res: # Check if successful
- print(sent, "Succeeded with a scrambled length of: ", vv) # show the good results
- print(res, "\n")
- break
- # Sample results:
- # Toy Story Succeeded with a scrambled length of: 55
- # aiFodtHVZPE.XJGmTErFoyIdNfZeNtTx SoHvqToGdyculkzqjiDSTT
- #
- # Silent Running Succeeded with a scrambled length of: 65
- # cEiXtASnc RiBuXZLrtHyfnPugjnPpZFhs.kciGgcVgGdCZlMJVoeonZpiHCeSUiO
- #
- # Mary Poppins Succeeded with a scrambled length of: 50
- # HAxcCVvSeMruLUnnkRNxICppi.ntvsHpoRMK PoEVBgrdayjoJ
- #
- # Top Gun Succeeded with a scrambled length of: 40
- # deERkTltgEoOszlxTkcYqhniGXlKurhxJAp G.Rh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement