Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Objects (Retired) Delivering the MVP Validation

6 errors, i'm at the very end

not sure what's up, here the console:

./Prompter.java:33: error: illegal start of expression
public void displayProgress() {
^
./Prompter.java:33: error: illegal start of expression
public void displayProgress() {
^
./Prompter.java:33: error: ';' expected
public void displayProgress() {
^
./Prompter.java:35: error: ')' expected
mGame.getRemainingTries();
^
./Prompter.java:36: error: ';' expected
mGame.getCurrentProgress());
^
./Prompter.java:12: error: cannot find symbol
displayProgress();
^
symbol: method displayProgress()
location: class Prompter
6 errors

here's my Prompter.java code:

import java.io.Console;

public class Prompter {
  private Game mGame;

  public Prompter(Game game) {
    mGame = game;
}

  public void play() {
    while (mGame.getRemainingTries()>0) {
      displayProgress();
      promptForGuess();
    }
  }

public boolean promptForGuess() {
  Console console = System.console();
  boolean isHit = false;
  boolean isValidGuess = false;
  while (! isValidGuess) {
    String guessAsString = console.readLine("Enter a letter  ");
    char guess = guessAsString.charAt(0);
    try {
      isHit = mGame.applyGuess(guess);
      isValidGuess = true;
    } catch (IllegalArgumentException iae) {
       console.printf("%s. Please try again.\n", iae.getMessage());
    }
    return isHit;
  }

public void displayProgress() {
  System.out.printf("You have %d tries left to solve: %s\n",
                    mGame.getRemainingTries();
                    mGame.getCurrentProgress());
    }
  }
}

1 Answer

Seth Kroger
Seth Kroger
56,414 Points

You're missing an end curly brace in this method for the while loop (comments added):

public boolean promptForGuess() { // <-begin method
  Console console = System.console();
  boolean isHit = false;
  boolean isValidGuess = false;
  while (! isValidGuess) { // <-begin while
    String guessAsString = console.readLine("Enter a letter  ");
    char guess = guessAsString.charAt(0);
    try { // <-begin try
      isHit = mGame.applyGuess(guess);
      isValidGuess = true;
    } catch (IllegalArgumentException iae) { // <-end try and begin catch
       console.printf("%s. Please try again.\n", iae.getMessage());
    } // <-end catch
    return isHit;
  } // compiler sees this as the end of the while loop but looks like it should end the method.

Hey thanks! this works great