Files
basic-computer-games/20_Buzzword/java/src/UserInterface.java
Martin Thoma e64fb6795c MAINT: Apply pre-commit
Remove byte-order-marker pre-commit check as there would be
many adjustments necessary
2022-03-05 09:29:23 +01:00

65 lines
1.6 KiB
Java

import java.io.PrintStream;
import java.util.Scanner;
import java.util.function.Supplier;
/**
* A command line user interface that outputs a buzzword every
* time the user requests a new one.
*/
public class UserInterface implements Runnable {
/**
* Input from the user.
*/
private final Scanner input;
/**
* Output to the user.
*/
private final PrintStream output;
/**
* The buzzword generator.
*/
private final Supplier<String> buzzwords;
/**
* Create a new user interface.
*
* @param input The input scanner with which the user gives commands.
* @param output The output to show messages to the user.
* @param buzzwords The buzzword supplier.
*/
public UserInterface(final Scanner input,
final PrintStream output,
final Supplier<String> buzzwords) {
this.input = input;
this.output = output;
this.buzzwords = buzzwords;
}
@Override
public void run() {
output.println(" BUZZWORD GENERATOR");
output.println(" CREATIVE COMPUTING MORRISTOWN, NEW JERSEY");
output.println();
output.println();
output.println();
output.println("THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN");
output.println("'EDUCATOR-SPEAK' THAT YOU CAN WORK INTO REPORTS");
output.println("AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,");
output.println("TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT.");
output.println();
output.println();
output.println("HERE'S THE FIRST PHRASE:");
do {
output.println(buzzwords.get());
output.println();
output.print("?");
} while ("Y".equals(input.nextLine().toUpperCase()));
output.println("COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!");
}
}