Question & Answer: Write a program that tests your ESP (extrasensory perception). The program should randomly s…..

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:–>

Still stressed from student homework?
Get quality assistance from academic writers!