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) |