Write a program that tests your ESP (extrasensory perception). The program should randomly select the name of a color from the following list of words:
Red, Green, Blue, Orange, Yellow
To select a word, the program can generate a random number. For example, if the number is 0, the selected word is Red, if the number is 1, the selected word is Green, and so forth.
Next, the program should ask the user to enter the color that the computer has selected. After the user has entered his or her guess, the program should display the name of the randomly selected color. The program should repeat this 10 times and then display the number of times the user correctly guessed the selected color. The dialog box must show to receive full credit with comments on every significant line of a code.
package name is esp
Expert Answer
import javax.swing.*; import java.util.*; import java.util.List; public class Main { //create static list witch contain color choices static List<String> choices = new ArrayList<String>(); public static void main(String[] args) { //initialize the list with colors choices.add("red"); choices.add("green"); choices.add("orange"); choices.add("blue"); choices.add("yellow"); int correctGuesses = 0; String input; Scanner keyboard = new Scanner(System.in); // join list for display String colors = String.join(", ", choices); // Play the game for 10 rounds. for (int round = 1; round <= 10; round++) { System.out.print("I'm thinking of a color " + colors + ":"); input = keyboard.next(); //if the user enter wrong color while (!isValidChoice(input)) { System.out.print("Please enter " + colors + ":"); input = keyboard.next(); } //check the computer choice if match then make increment in correctGuesses String computerChoice=computerChoice(); System.out.println("The computer selected : " +computerChoice); if (computerChoice.equalsIgnoreCase(input)) { correctGuesses ++; } } //close scanner keyboard.close(); // show output JOptionPane.showMessageDialog(null,"Number of correct guesses: " + correctGuesses); } /** * Method should return computer choice */ static String computerChoice() { Random random = new Random(); OptionalInt computerChoice = random.ints(0, choices.size() - 1).findFirst(); return choices.get(computerChoice.getAsInt()); } /** * Check if input is contained within list * * @param input * @return */ static boolean isValidChoice(String input) { java.util.Optional<String> val = choices.stream() .filter(e -> e.equals(input.toLowerCase())).findAny(); return val.isPresent(); } }
//output:–>