Starting from:
$26.99

$20.99

Program #8 Solution

You are to write a program that will read a file of scrambled 7-letter strings, and then prints out the highest valued legal Scrabble word(s) of each string.  Before reading the file, your program will store a list of words read from the file words.txt.  That file contains both legal and illegal words.  Scrabble words are up to seven letters long, and are only composed of lowercase alphabetic characters.   Your program will have to avoid storing the illegal words.

Your program should have an STL map that has strings that are mapped to ints, of type WordMap.  The strings will be the legal scrabble words found in words.txt, and the ints will be Scrabble value of the word.

You must create a map of letters to values name letterMap, and use the map in determining the value of a word. The

values, from 'a' to 'z' are 1, 3, 3, 2, 1, 4, 2, 4, 2, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, and 10.   I initialized an array of ints, named letterValues with these values, and then inserted into the map.

The toughest part of this program is designing an algorithm to test all of the permutations of the file string and its substrings.  You must use rotate and/or next_permutation to help in this task.  Besides p. 878 in the text, you will find

more information on the web by searching for "STL rotate", or "next_permutation".

You are not allowed to use any arrays or pointers in this program, other than letterValues. There may be only two sets of “[]” in your entire program: 1) The initialization statement for letterValues, and 2) Inside the for-loop that inserts into

letterMap.  I used an STL set to hold the best words for a given word, but you are welcome to try something else.  Your program must compile without warnings when compiled with –Wall –ansi.  Your output must match mine exactly!  You

will find words.txt, File1.txt, File2.txt and my scrabble.out in ~ssdavis/40/p8.

 

[ssdavis@lect1 p8]$ cat File1.txt abcdefg

ableujk

ttabeed olbisha abjects ytvxyzk

[ssdavis@lect1 p8]$

[ssdavis@lect1 p8]$ scrabble.out File1.txt

9 abcdefg: badge cafe face

15 ableujk: jake juke

10 ttabeed: abetted

13 olbisha: abolish

17 abjects: abject

0 ytvxyzk: No words found. [ssdavis@lect1 p8]$

[ssdavis@lect1 p8]$ cat File2.txt b glefh

rot tes qui bbb abc def

[ssdavis@lect1 p8]$

[ssdavis@lect1 p8]$ scrabble.out File2.txt

13 b glefh: behalf

6 rot tes: protest rosette

13 qui bbb: quid quip quit quiz

11 abc def: deface facade

[ssdavis@lect1 p8]$

More products