#!/usr/bin/env python3 import json # The crossword grid from the API response grid = [ [".", ".", ".", ".", ".", ".", ".", ".", "D", ".", "."], [".", ".", ".", ".", ".", "M", "I", "C", "E", ".", "."], [".", ".", ".", "H", "U", "M", "A", "N", "E", ".", "."], [".", ".", ".", "W", "H", "A", "L", "E", "R", ".", "."], [".", "P", "Z", ".", ".", ".", "L", ".", ".", ".", "."], ["Z", "O", "O", "L", "O", "G", "I", "C", "A", "L", "."], [".", "U", "O", ".", ".", ".", "G", "E", "E", "S", "E"], [".", "L", "L", "H", "U", "M", "A", "N", "I", "T", "Y"], [".", "T", "O", ".", ".", ".", "T", "I", "G", "E", "R"], [".", "R", "G", ".", "B", "I", "O", "L", "O", "G", "Y"], [".", "Y", "Y", ".", ".", ".", "R", ".", ".", ".", "."] ] print("Generated Crossword Grid:") print("=" * 50) for i, row in enumerate(grid): row_str = "" for j, cell in enumerate(row): if cell == ".": row_str += " " # Empty space else: row_str += f"{cell} " print(f"{i:2d} | {row_str}") print("=" * 50) # Check for word boundaries def check_word_boundaries(grid): issues = [] # Horizontal words for r in range(len(grid)): in_word = False word_start = -1 for c in range(len(grid[r])): if grid[r][c] != ".": if not in_word: in_word = True word_start = c else: if in_word: # Word ended word_length = c - word_start word = "".join(grid[r][word_start:c]) print(f"Horizontal word at ({r},{word_start}): {word} (length {word_length})") in_word = False # Check if word extends to end of row if in_word: word_length = len(grid[r]) - word_start word = "".join(grid[r][word_start:]) print(f"Horizontal word at ({r},{word_start}): {word} (length {word_length})") # Vertical words for c in range(len(grid[0])): in_word = False word_start = -1 for r in range(len(grid)): if grid[r][c] != ".": if not in_word: in_word = True word_start = r else: if in_word: # Word ended word_length = r - word_start word = "".join([grid[i][c] for i in range(word_start, r)]) print(f"Vertical word at ({word_start},{c}): {word} (length {word_length})") in_word = False # Check if word extends to end of column if in_word: word_length = len(grid) - word_start word = "".join([grid[i][c] for i in range(word_start, len(grid))]) print(f"Vertical word at ({word_start},{c}): {word} (length {word_length})") print("\nWord boundary analysis:") check_word_boundaries(grid)