Presentation is loading. Please wait.

Presentation is loading. Please wait.

Boggle Game: Backtracking Algorithm Implementation

Similar presentations


Presentation on theme: "Boggle Game: Backtracking Algorithm Implementation"— Presentation transcript:

1 Boggle Game: Backtracking Algorithm Implementation
CS 1501

2 Boggle Game Read the assignment requirement carefully. 2017/4/23

3 Boggle Game Read the assignment requirement carefully. The boggle game is to form as many 3+ letter words as possible from a 2-dimensional board of letters. We want to form words by starting at any letter and traversing over adjacent cubes vertically, horizontally or diagonally. Any cube may appear at most once in a word. Only real words (from dictionary) are valid. Words must be at least 3 letters long to be valid. F R O Y I E S L D N T A 2017/4/23

4 Boggle Game Read the assignment requirement carefully. The boggle game is to form as many 3+ letter words as possible from a 2-dimensional board of letters. We want to form words by starting at any letter and traversing over adjacent cubes vertically, horizontally or diagonally. Any cube may appear at most once in a word. Only real words (from dictionary) are valid. Words must be at least 3 letters long to be valid. F R I E N D F R O Y I E S L D N T A 2017/4/23

5 Boggle Game Read the assignment requirement carefully. The boggle game is to form as many 3+ letter words as possible from a 2-dimensional board of letters. We want to form words by starting at any letter and traversing over adjacent cubes vertically, horizontally or diagonally. Any cube may appear at most once in a word. Only real words (from dictionary) are valid. Words must be at least 3 letters long to be valid. R O S T E R F R O Y I E S L D N T A 2017/4/23

6 Boggle Game Read the assignment requirement carefully. The boggle game is to form as many 3+ letter words as possible from a 2-dimensional board of letters. We want to form words by starting at any letter and traversing over adjacent cubes vertically, horizontally or diagonally. Any cube may appear at most once in a word. Only real words (from dictionary) are valid. Words must be at least 3 letters long to be valid. E N D F I N E R E A L F R O Y I E S L D N T A 2017/4/23

7 Boggle Game Read the assignment requirement carefully. The boggle game is to form as many 3+ letter words as possible from a 2-dimensional board of letters. We want to form words by starting at any letter and traversing over adjacent cubes vertically, horizontally or diagonally. Any cube may appear at most once in a word. Only real words (from dictionary) are valid. Words must be at least 3 letters long to be valid. X D E A D X F Y L D E R E F R O Y I E S L D N T A 2017/4/23

8 Boggle Game …… Wild card * F R O Y I E S L * N T A F R O Y I E S L A N
A * can represent any letter in the alphabet. Wild card essentially causes more word possibilities in a given board. F R O Y I E S L * N T A F R O Y I E S L A N T F R O Y I E S L B N T A F R O Y I E S L D N T A F R O Y I E S L Z N T A …… 2017/4/23

9 Requirement Read board from text file.
Calculate all possible words (of length at least 3). Allow the user to type words from the keyboard and tell him if each word is “valid” or not. Show the user all of the words for the board by printing out all of the words in the board word list in alphabetical order. 2017/4/23

10 Board Search Start from any cube on the board F R O Y I E S L D N T A
Track where we are (current position) Track where we were (history) F R O Y I E S L D N T A 2017/4/23

11 Board Search Start from any cube on the board j F R O Y I E S L D N T
Track where we are (current position) (i, j) Determine where we can go (next position) (i-1, j-1) (i-1, j) (i-1, j+1) (i, j-1) curr (i, j+1) (i+1, j-1)(i+1, j)(i+1, j+1) Track where we were (history) j F R O Y I E S L D N T A (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) i 2017/4/23

12 Backtracking Example Start from any cube on the board j F R O Y I E S
Start from D At (2, 1) Next step can be: (1, 0) (1, 1) (1, 2) (2, 0) (2, 2) (3, 0) (3, 1) (3, 2) Try (1, 0) – DY Advance to (1, 0) j F R O Y I E S L D N T A (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) i 2017/4/23

13 Backtracking Example Start from any cube on the board j F R O Y I E S
Now at Y (1, 0)-(2,1) At (1, 0) Next step can be: (0, 0) (0, 1) (1, 1) (2, 2) (2, 0) (2, 1) is not allowed! Try all possible steps and find no valid prefix or words Backtrack to D (2, 1) j F R O Y I E S L D N T A (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) i 2017/4/23

14 Backtracking Example Start from any cube on the board j F R O Y I E S
Return to D At (2, 1) Next step can be: (1, 1) (1, 2) (2, 0) (2, 2) (3, 0) (3, 1) (3, 2) (1, 0) has failed. Try (1, 1) – DI Advance to (1, 1) …. j F R O Y I E S L D N T A (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) i 2017/4/23

15 New Step Situations When we try a new step on the board, the composition with the new letter can have 4 possible situations: Not a prefix, not a word Give up, backtrack to the previous step (pruning) Not a prefix, is a word Save the word, backtrack to the previous step Is a prefix, not a word Explore the next possible step Is a prefix, is a word Save the word, explore the next possible step The function to check a prefix or a word are provided. 2017/4/23

16 Big Picture Proceed forward to a solution until it becomes apparent that no solution can be achieved along the current path. At that point UNDO the solution (backtrack) to a point where we can again proceed forward Some hints: Use a stack to track the history path. Push stack: advance step Pop stack: backtrack Use a variable for each cube to track what is the next direction to explore. (stack) Advance step: push the next direction into the stack Backtrack: pop the next direction out of the stack Use a boolean table (2d array) to mark the cubes visited. Advance step: mark new cube Backtrack: unmark cube 2017/4/23


Download ppt "Boggle Game: Backtracking Algorithm Implementation"

Similar presentations


Ads by Google