File size: 2,986 Bytes
38c016b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/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)