1 / 16

Boggle Game: Backtracking Algorithm Implementation

Boggle Game: Backtracking Algorithm Implementation. CS 1501. Boggle Game. Read the assignment requirement carefully. http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html. Boggle Game.

eman
Download Presentation

Boggle Game: Backtracking Algorithm Implementation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Boggle Game:Backtracking Algorithm Implementation CS 1501

  2. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html

  3. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html • 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.

  4. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html • 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

  5. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html • 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

  6. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html • 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

  7. Boggle Game • Read the assignment requirement carefully.http://www.cs.pitt.edu/~kirk/cs1501/Ramirez/Summer2009/assigs/boggle/assig1a.html • 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

  8. Boggle Game • Wild card * • A * can represent any letter in the alphabet. • Wild card essentially causes more word possibilities in a given board. ……

  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.

  10. Board Search • Start from any cube on the board • Track where we are (current position) • Track where we were (history)

  11. Board Search • Start from any cube on the board • 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 i

  12. Backtracking Example • Start from any cube on the board • 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 i

  13. Backtracking Example • Start from any cube on the board • 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 i

  14. Backtracking Example • Start from any cube on the board • 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 i

  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.

  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

More Related