def scan_line(line): to_find = "XMAS" return line.count(to_find) def transpose(list_2d): return list(zip(*list_2d)) def rotate(list_2d): x_max, y_max = len(list_2d), len(list_2d[0]) diagonal_list = [] # Diagonals starting from (0,0), for the first row. for i in range(x_max): substring = "" x = i y = 0 #while x < x_max and y < y_max: # TODO: Snapperniksvan -- Kees while x < x_max and y < len(list_2d[x]): print(x, x_max, y, y_max) substring += list_2d[x][y] x += 1 y += 1 diagonal_list.append(substring) # Diagonals starting from (0,1), for the first column. for j in range(1, y_max): substring = "" x = 0 y = j while x < x_max and y < y_max: substring += list_2d[x][y] x += 1 y += 1 diagonal_list.append(substring) return diagonal_list if __name__ == "__main__": result = 0 with open("input", "r") as fp: full_string = fp.read().split("\n") for line in full_string: result += scan_line(line) result += scan_line(line[::-1]) for line in transpose(full_string): result += scan_line(line) result += scan_line(line[::-1]) diagonal_list = rotate(full_string) for line in full_string: result += scan_line(line) result += scan_line(line[::-1]) for line in transpose(full_string): result += scan_line(line) result += scan_line(line[::-1]) #transposed_file = print(f"The sum of all horizontal XMAS's equals {result}.")