Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- ARGUMENTS_AMOUNT = 3
- DIRECTIONS_POSITION = 2
- WORDS_LIST_POSITION = 0
- MATRIX_LIST_POSITION = 1
- if __name__ == "main":
- if len(sys.argv) == ARGUMENTS_AMOUNT:
- if
- def word_list_reading(word_file):
- word_list = []
- word_pool = open(word_file,"r")
- for line in word_pool:
- if line[len(line)-1] == "\n":
- word = line[:len(line)-1]
- word_list.append(word)
- else:
- word_list.append(line)
- return word_list
- def matrix_file_reading(matrix_file):
- matrix_pool = open(matrix_file,"r")
- crossword = []
- for line in matrix_pool:
- if line[len(line)-1] == "\n":
- low_case_line = line[:len(line)-1].lower()
- else:
- low_case_line = line.lower()
- letter_pool = low_case_line.split(",")
- crossword.append(letter_pool)
- return crossword
- def horizontal_search(word,crossword_matrix,word_count):
- for line in crossword_matrix:
- if word in line:
- if word in word_count:
- word_count[word] += 1
- else:
- word_count[word] = 1
- def vertical_search(word,crossword_matrix,word_count):
- line_length = len(crossword_matrix[0])
- for j in range(line_length):
- column = ""
- for line in crossword_matrix:
- column += line[j]
- if word in column:
- if word in word_count:
- word_count += 1
- else:
- word_count[word] = 1
- return word_count
- def upper_diagonal_search(word,crossword,word_count):
- last_index = len(crossword[0]) - 1
- delta = len(word) - 1
- for (i,line) in enumerate(crossword_matrix):
- for (j,letter) in enumerate(line):
- if letter == word[0]:
- if j + delta <= last_index:
- if i - delta <= 0:
- for n in range(1,len(word)):
- if crossword[i-1][j+1] != word[n]:
- break
- i -= 1
- j += 1
- if word in word_count:
- word_count[word] += 1
- else:
- word_count[word] = 1
- return word_count
- def lower_digaonal_search(word,crossword,word_count):
- delta = len(word) - 1
- for (i, line) in enumerate(crossword_matrix):
- for (j, letter) in enumerate(line):
- if letter == word[0]:
- if j - delta >= 0:
- if i - delta <= 0:
- for n in range(1,len(word)):
- if crossword[i-1][j-1] != word[n]:
- break
- i -= 1
- j -= 1
- if word in word_count:
- word_count[word] += 1
- else:
- word_count[word] = 1
- return word_count
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement