Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. import sys
  2.  
  3. ARGUMENTS_AMOUNT = 3
  4. DIRECTIONS_POSITION = 2
  5. WORDS_LIST_POSITION = 0
  6. MATRIX_LIST_POSITION = 1
  7.  
  8. if __name__ == "main":
  9. if len(sys.argv) == ARGUMENTS_AMOUNT:
  10. if
  11.  
  12. def word_list_reading(word_file):
  13.  
  14. word_list = []
  15. word_pool = open(word_file,"r")
  16. for line in word_pool:
  17. if line[len(line)-1] == "\n":
  18. word = line[:len(line)-1]
  19. word_list.append(word)
  20. else:
  21. word_list.append(line)
  22. return word_list
  23.  
  24.  
  25.  
  26. def matrix_file_reading(matrix_file):
  27.  
  28. matrix_pool = open(matrix_file,"r")
  29. crossword = []
  30. for line in matrix_pool:
  31. if line[len(line)-1] == "\n":
  32. low_case_line = line[:len(line)-1].lower()
  33. else:
  34. low_case_line = line.lower()
  35. letter_pool = low_case_line.split(",")
  36. crossword.append(letter_pool)
  37. return crossword
  38.  
  39. def horizontal_search(word,crossword_matrix,word_count):
  40.  
  41.  
  42. for line in crossword_matrix:
  43. if word in line:
  44. if word in word_count:
  45. word_count[word] += 1
  46. else:
  47. word_count[word] = 1
  48.  
  49. def vertical_search(word,crossword_matrix,word_count):
  50.  
  51. line_length = len(crossword_matrix[0])
  52. for j in range(line_length):
  53. column = ""
  54. for line in crossword_matrix:
  55. column += line[j]
  56. if word in column:
  57. if word in word_count:
  58. word_count += 1
  59. else:
  60. word_count[word] = 1
  61. return word_count
  62.  
  63. def upper_diagonal_search(word,crossword,word_count):
  64.  
  65. last_index = len(crossword[0]) - 1
  66. delta = len(word) - 1
  67. for (i,line) in enumerate(crossword_matrix):
  68. for (j,letter) in enumerate(line):
  69. if letter == word[0]:
  70. if j + delta <= last_index:
  71. if i - delta <= 0:
  72. for n in range(1,len(word)):
  73. if crossword[i-1][j+1] != word[n]:
  74. break
  75. i -= 1
  76. j += 1
  77. if word in word_count:
  78. word_count[word] += 1
  79. else:
  80. word_count[word] = 1
  81. return word_count
  82.  
  83. def lower_digaonal_search(word,crossword,word_count):
  84.  
  85. delta = len(word) - 1
  86. for (i, line) in enumerate(crossword_matrix):
  87. for (j, letter) in enumerate(line):
  88. if letter == word[0]:
  89. if j - delta >= 0:
  90. if i - delta <= 0:
  91. for n in range(1,len(word)):
  92. if crossword[i-1][j-1] != word[n]:
  93. break
  94. i -= 1
  95. j -= 1
  96. if word in word_count:
  97. word_count[word] += 1
  98. else:
  99. word_count[word] = 1
  100. return word_count
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement