@@ -54,12 +54,14 @@ def generate_domain(word: str, grid: Grid) -> List[List[Tuple[str, GridLocation]
54
54
# diagonal towards bottom right
55
55
if row + length <= height :
56
56
domain .append ([(l , GridLocation (r , col + (r - row ))) for l , r in zip (word , rows )])
57
- domain .append ([(l , GridLocation (r , col + (r - row ))) for l , r in zip (word , rows )])
57
+ domain .append ([(l , GridLocation (r , col + (r - row ))) for l , r in zip (reverse_string ( word ) , rows )])
58
58
if row + length <= height :
59
59
# top to bottom
60
60
domain .append ([(l , GridLocation (r , col )) for l , r in zip (word , rows )])
61
+ domain .append ([(l , GridLocation (r , col )) for l , r in zip (reverse_string (word ), rows )])
61
62
# diagonal towards bottom left
62
63
if col - length >= 0 :
64
+ domain .append ([(l , GridLocation (r , col - (r - row ))) for l , r in zip (word , rows )])
63
65
domain .append ([(l , GridLocation (r , col - (r - row ))) for l , r in zip (reverse_string (word ), rows )])
64
66
65
67
return domain
@@ -83,7 +85,7 @@ def satisfied(self, assignment: Dict[str, List[Tuple[str, GridLocation]]]) -> bo
83
85
return True
84
86
85
87
if __name__ == "__main__" :
86
- grid : Grid = generate_grid (9 , 9 )
88
+ grid : Grid = generate_grid (4 , 9 )
87
89
words : List [str ] = ["MATTHEW" , "JOE" , "MARY" , "SARAH" , "SALLY" ]
88
90
locations : Dict [str , List [List [Tuple [str , GridLocation ]]]] = {}
89
91
for word in words :
0 commit comments