Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FixedMessageSequenceProtocol {
- int currentJoke;
- public FixedMessageSequenceProtocol (int step) {
- this.currentJoke = step;
- }
- private static final int WAITING = 0;
- private static final int SENTKNOCKKNOCK = 1;
- private static final int SENTCLUE = 2;
- private static final int ANOTHER = 3;
- private static final int NUMJOKES = 10;
- private int state = WAITING;
- // private int currentJoke = 0;
- private String[] clues = { "Turnip", "Little Old Lady", "Doctor",
- "Teacher", "Dog", "Firefighter",
- "Zoologist", "Atch", "Who", "Who" }; // 10 Items
- private String[] answers = { "Turnip the heat, it's cold in here!",
- "I didn't know you could yodel!",
- "Is there an owl doctor?",
- "Teacher who says do ur HW please",
- "Dog who runs",
- "Firefighter who saves people",
- "Zoologist who discovers",
- "Bless you!",
- "Is there an owl in here?",
- "Is there an echo in here?" };
- public String processInput(String theInput) {
- String theOutput = null;
- if (state == WAITING) {
- theOutput = "Knock! Knock!";
- state = SENTKNOCKKNOCK;
- } else if (state == SENTKNOCKKNOCK) {
- if (theInput.equalsIgnoreCase("Who's there?")) {
- theOutput = clues[currentJoke];
- state = SENTCLUE;
- } else {
- theOutput = "You're supposed to say \"Who's there?\"! " +
- "Try again. Knock! Knock!";
- }
- } else if (state == SENTCLUE) {
- if (theInput.equalsIgnoreCase(clues[currentJoke] + " who?")) {
- theOutput = answers[currentJoke] + " Want another? (y/n)";
- state = ANOTHER;
- } else {
- theOutput = "You're supposed to say \"" +
- clues[currentJoke] +
- " who?\"" +
- "! Try again. Knock! Knock!";
- state = SENTKNOCKKNOCK;
- }
- } else if (state == ANOTHER) {
- if (theInput.equalsIgnoreCase("y")) {
- theOutput = "Knock! Knock!";
- if (currentJoke == (NUMJOKES - 1))
- currentJoke = 0;
- else
- currentJoke++;
- state = SENTKNOCKKNOCK;
- } else {
- theOutput = "Bye.";
- state = WAITING;
- }
- }
- return theOutput;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement