Search code examples
javajgrasp

Illegal start of expression in my ESP Game Methods


The line public static String guessColor(Scanner keyboard) is where my errors are. The errors are as follows: illegal start of expression: at public, and at static. error: ';' expected: in between String and guessColor. error ';' expected: in between Scanner and keyboard. illegal start of expression: at ) in that line.

public class RichardsonESPGame
{                  
public static void main(String[] args)
  {   
     String random;
     String guess;         
     Scanner keyboard = new Scanner(System.in);         

     random = computerColor();
     guess = guessColor(keyboard);         
     String end = recordGame(random, guess);
     System.out.println(end);

  keyboard.close();   
  } 
/**
In this method the color choices will be displayed.
*/        
public static String computerColor()
  {    
     Random rand = new Random();
     int color = rand.nextInt(5) + 1;
     return receiveColor(color);
  }      


/**
This method will give the computer and user its color options.
*/
public static String receiveColor(int color)
 {
     String selection;   
     switch (color)
     {   
        case 1:
        selection = "Red";
        break;
        case 2:
        selection = "Blue";
        break;
        case 3:
        selection = "Green";
        break;
        case 4:
        selection = "Yellow";
        break;
        case 5:
        selection = "Orange";
        break;
        default:
        System.out.println("Make a valid selection.");
        selection = null;
     }
     return selection;

/**
This method will get the user's color choice.
*/
 public static String guessColor(Scanner keyboard)
  {
    System.out.println("Enter a number from 1 to 5 to receive a color.\n 1 is Red\n 2 is Blue\n 3 is Green\n 4 is Yellow\n 5 is Orange\n");
    int richardsonGuessColor = keyboard.nextInt();
    String color = receiveColor(richardsonGuessColor);

    while (color == null)
     {
        System.out.println("Enter a number from 1 to 5 to receive a color.\n 1 is Red\n 2 is Blue\n 3 is Green\n 4 is Yellow\n 5 is Orange\n");
        int guess = keyboard.nextInt();
        color = receiveColor(richardsonGuessColor);
     }

    return color;         
   }

/**
This method will determine if user guesses correctly.
*/

public static String recordGame(String richardsonComputerColor, String richardsonGuessColor)
  {

     String end;
     end = "The computer's choice was: " + richardsonComputerColor;
     end += "Your choice was: " + richardsonGuessColor;

       if(richardsonGuessColor.equalsIgnoreCase("Red"))
        {
               if (richardsonComputerColor.equalsIgnoreCase("Red"))
              {
                 end += "You guessed correctly!";
              }     
              else
              {
                 result += "You guessed incorrectly.";
              }
        }

      else if(richardsonGuessColor.equalsIgnoreCase("Blue"))
           {
                  if (richardsonComputerColor.equalsIgnoreCase("Blue"))
                 {
                    end += "You guessed correctly!";
                 }      
                 else
                 {
                    result += "You guessed incorrectly.";
                 }
           } 

      else if(richardsonGuessColor.equalsIgnoreCase("Green"))
           {
                  if (richardsonComputerColor.equalsIgnoreCase("Green"))
                 {
                    end += "You guessed correctly!";
                 }      
                 else
                 {
                    result += "You guessed incorrectly.";
                 }
           }
     else if(richardsonGuessColor.equalsIgnoreCase("Yellow"))
           {
                  if (richardsonComputerColor.equalsIgnoreCase("Yellow"))
                 {
                    end += "You guessed correctly!";
                 }      
                 else
                 {
                    result += "You guessed incorrectly.";
                 }
        }
     else if(richardsonGuessColor.equalsIgnoreCase("Orange"))
           {
                  if (richardsonComputerColor.equalsIgnoreCase("Orange"))
                 {
                    end += "You guessed correctly!";
                 }      
                 else
                 {
                    result += "You guessed incorrectly.";
                 }
           }    
     return end;
  }

}

Solution

  • This happens because you never made the final closing bracket in the previous method. To fix it all you need to add is a closing bracket after the return statement on the recieveColor method