Advertisement
Guest User

l3

a guest
Oct 1st, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1. import operator
  2.  
  3. n = 3
  4. word = 'sherlock'
  5. key = '** \n **\n***'
  6.  
  7. fields = []
  8. key_rows = key.splitlines()
  9. for i in xrange(n):
  10.     for j in xrange(n):
  11.         if key_rows[i][j] is ' ':
  12.             fields.append({'row': i, 'col': j})
  13.  
  14. matrix = [[' ' for x in xrange(n)] for x in xrange(n)]
  15. index = 0
  16. spin_count = 0
  17.  
  18. while index < len(word) and spin_count < 4:
  19.     for field in fields:
  20.         matrix[field['row']][field['col']] = word[index]
  21.         index += 1
  22.         new_col = field['row']
  23.         field['row'] = n - 1 - field['col']
  24.         field['col'] = new_col
  25.  
  26.     fields = sorted(fields, key=operator.itemgetter('col'))
  27.     fields = sorted(fields, key=operator.itemgetter('row'))
  28.     spin_count += 1
  29.  
  30. for i, row in enumerate(matrix):
  31.     print ' '.join(row)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement