| 1 | Start at cell | (0,0) | 0 | {} | Check if board[0][0] == word[0] | Grid unchanged |
| 2 | Match found | (0,0) | 0 | {(0,0)} | Mark visited and explore neighbors | Visited: (0,0) |
| 3 | Explore neighbor | (0,1) | 1 | {(0,0)} | board[0][1] == word[1]? No | Visited: (0,0) |
| 4 | Explore neighbor | (1,0) | 1 | {(0,0)} | board[1][0] == word[1]? Yes | Visited: (0,0) |
| 5 | Mark visited | (1,0) | 1 | {(0,0),(1,0)} | Explore neighbors for next letter | Visited: (0,0),(1,0) |
| 6 | Explore neighbor | (2,0) | 2 | {(0,0),(1,0)} | board[2][0] == word[2]? Yes | Visited: (0,0),(1,0) |
| 7 | Mark visited | (2,0) | 2 | {(0,0),(1,0),(2,0)} | Explore neighbors for next letter | Visited: (0,0),(1,0),(2,0) |
| 8 | Explore neighbor | (3,0) | 3 | {(0,0),(1,0),(2,0)} | Out of bounds | Visited: (0,0),(1,0),(2,0) |
| 9 | Explore neighbor | (2,1) | 3 | {(0,0),(1,0),(2,0)} | board[2][1] == word[3]? No | Visited: (0,0),(1,0),(2,0) |
| 10 | Explore neighbor | (1,0) | 3 | {(0,0),(1,0),(2,0)} | Already visited | Visited: (0,0),(1,0),(2,0) |
| 11 | Explore neighbor | (2,-1) | 3 | {(0,0),(1,0),(2,0)} | Out of bounds | Visited: (0,0),(1,0),(2,0) |
| 12 | Backtrack | (2,0) | 2 | {(0,0),(1,0)} | Unmark (2,0), try other neighbors | Visited: (0,0),(1,0) |
| 13 | Explore neighbor | (1,1) | 2 | {(0,0),(1,0)} | board[1][1] == word[2]? No | Visited: (0,0),(1,0) |
| 14 | Backtrack | (1,0) | 1 | {(0,0)} | Unmark (1,0), try other neighbors | Visited: (0,0) |
| 15 | Explore neighbor | (0,1) | 1 | {(0,0)} | board[0][1] == word[1]? No | Visited: (0,0) |
| 16 | Explore neighbor | (-1,0) | 1 | {(0,0)} | Out of bounds | Visited: (0,0) |
| 17 | Backtrack | (0,0) | 0 | {} | Unmark (0,0), move to next cell | Visited: {} |
| 18 | Start at cell | (0,1) | 0 | {} | Check if board[0][1] == word[0] | Grid unchanged |
| 19 | No match | (0,1) | 0 | {} | Move to next cell | Grid unchanged |
| 20 | Start at cell | (0,2) | 0 | {} | Check if board[0][2] == word[0] | Grid unchanged |
| 21 | Match found | (0,2) | 0 | {(0,2)} | Mark visited and explore neighbors | Visited: (0,2) |
| 22 | Explore neighbor | (0,3) | 1 | {(0,2)} | board[0][3] == word[1]? Yes | Visited: (0,2) |
| 23 | Mark visited | (0,3) | 1 | {(0,2),(0,3)} | Explore neighbors for next letter | Visited: (0,2),(0,3) |
| 24 | Explore neighbor | (0,4) | 2 | {(0,2),(0,3)} | Out of bounds | Visited: (0,2),(0,3) |
| 25 | Explore neighbor | (1,3) | 2 | {(0,2),(0,3)} | board[1][3] == word[2]? Yes | Visited: (0,2),(0,3) |
| 26 | Mark visited | (1,3) | 2 | {(0,2),(0,3),(1,3)} | Explore neighbors for next letter | Visited: (0,2),(0,3),(1,3) |
| 27 | Explore neighbor | (2,3) | 3 | {(0,2),(0,3),(1,3)} | board[2][3] == word[3]? Yes | Visited: (0,2),(0,3),(1,3) |
| 28 | Mark visited | (2,3) | 3 | {(0,2),(0,3),(1,3),(2,3)} | All letters matched, return True | Visited: (0,2),(0,3),(1,3),(2,3) |
| 29 | Return | - | - | - | Word found in grid | Final Visited: (0,2),(0,3),(1,3),(2,3) |