Programming Assignment 6 SOlution

$35.00 $29.00

1. Go to box.miami.edu and make sure you see the version of prog05 you meant to turn in this morning. If not, send email to vjm@cs.miami.edu right away. 0. Create package prog06 and copy MaintainQueue.java into it. 1. Run MaintainQueue and make sure you know how it works. It won’t print the list of names…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Description

5/5 – (2 votes)

1. Go to box.miami.edu and make sure you see the version of prog05

you meant to turn in this morning. If not, send email to

vjm@cs.miami.edu right away.

0. Create package prog06 and copy MaintainQueue.java into it.

1. Run MaintainQueue and make sure you know how it works. It won’t

print the list of names in the queue until you implement toString

in the next step. Add a few people, peek, remove, etc. What

happens when you remove from an empty queue? poll? peek? element?

2. Implement toString in MaintainQueue. Visit the elements of

customers using the new kind of for loop and append them to a

single String separated by spaces. Test.

3. In ArrayQueue.java, read and understand offer and peek.

“Understand” means that you are ready to write either of them on

the quiz tomorrow! Implement poll. Test using MaintainQueue.

Read and understand the definition of the Iter class.

4. In LinkedQueue.java, read and understand offer and peek. Implement

poll. Implement hasNext() and next() in the Iter class. Unlike

ArrayQueue.Iter, it needs only one variable to keep track of the

next node to be visited. Test using MaintainQueue.

5. Create a class WordStep with a variable

static UserInterface ui = new GUI();

and a main method. In the main method, create a new WordStep and

store it in a variable named game. Using ui, ask the user for a

starting word and a target word. Ask if the human or the computer

should play using

String[] commands = { “Human plays.”, “Computer plays.” };

Call game.play or game.solve with the starting word and the target

word. Create empty methods so this compiles and runs.

void play (String start, String target) { }

void solve (String start, String target) { }

Inside play, do the following forever (until the return occurs).

Tell the user the current word (the start) and the target word.

Ask for the next word. Set the start word variable to that next

word. If it equals the target, tell the user “You win!” and

return. Otherwise keep looping. Test. (Also deal with cancel.)

HOMEWORK

6. In WordStep, create a static boolean method offBy1 which takes two

String variables as input and returns true if they have the same

length and differ in exactly one character.

Modify play so that it uses offBy1. If the word that the user

suggests is not one letter away from the current start word, warn

the user and DO NOT change the current (start) word variable.

Test. You still will be able to use nonsense words like “snon”.

7. In main, just after creating the new WordStep, ask the user for the

name of a word file and call game.loadWords(filename). Add a

List<String> words to WordStep initialized to an ArrayList<String>,

and write loadWords that adds all the words in the file to the

list.

Write a find method that finds a word in words. It should return

the index of the word or -1 if it is not there. Modify main to

check that the start and target words are in the list. Test using

the file called words (not words.txt by the way) in the prog06

directory.

8. Modify reallocate() in ArrayQueue to use System.arraycopy.

Sometimes it has to call it twice. Test. Make sure you add enough

entries when you run MaintainQueue to trigger reallocate(). To

test set labReallocate to false. Make sure you do tests with

first < last and with first > last.

9. Modify ArrayQueue.Iter to using a single index variable and no

count variable. If the queue is empty, then the constructor should

set index=-1. If index==last, then next() should set index=-1.

Test by setting labIterator to false.

10. Now to implement WordStep.solve.

Create an array of int called parents whose length is the same as

the word list. Initialize all the entries in parents to -1.

Create a Queue of Integer. Put the index of the start word into

the queue.

While the queue is not empty, remove an index. Call the word at

the index the current word. Go through the list of words and look

for words which aren’t the start word, don’t have parents set yet,

and are one letter different from current word. For each one you

find, put its index into the queue and set parents at that index to

the index of the current word.

Also check if the word is the target. If it is report success. To

get the solution in reverse order, follow the indices in parents

the start word. Display the solution in forward order. Return.

Programming Assignment 6 SOlution
$35.00 $29.00