Computer Science
December 18, 2019
Software Testing and Quality Assurance
December 18, 2019

Application Code FRQ

Application Code FRQ

Notes:

· Assume that the classes listed in the Quick Reference have been imported where needed.

· Unless otherwise noted in the question, assume that parameters in method calls are not null and that methods are called only when their preconditions are satisfied.

· In writing solutions for each question, you may use any of the accessible methods that are listed in classes defined in that question. Writing significant amounts of code that can be replaced by a call to one of these methods may not receive full credit.

Consider a game with a combination lock box that has a 4-letter word as the combination. A player tries to guess the combination by guessing one letter at a time to win a prize inside the box. The combination only contains 4 lower-case letters. A guess is one lower-case letter.

For each round of play, the player is given a binary clue (yes/no) based on a comparison between the combination lock and the guess. If the letter that the player guesses is in the combination lock word, the player gets a binary clue (yes/no) that says “yes”; if the letter that the player guesses is NOT in the combination lock word, the clue is “no”.

The CombinationLock class will be used to represent the combination lock in the game. The combination lock is passed to the constructor. The class contains a method, getClue, that takes a guess and produces a clue.

For example, suppose the variable comboLock is declared as follows:

CombinationLock comboLock = new CombinationLock(“frog”);

If a player guesses “f”, then the binary clue would be “yes”; if the player guesses “t”, then the binary clue would be “no”.

Write the complete CombinationLock class, including any required instance variables, its constructor, and the method getClue, described above.