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 Creating the MVP Counting Scrabble Tiles

Jessie Burton
Jessie Burton
5,198 Points

Getting an error

Getting a cannot find symbol error on my count variable. but the count variable was correct from the last challenge. Whats going on.

And also is there a way to see my past correct answers? Im asking this because I completed this challenge already but I dont remember what I did to get it right so I can write it down in my notes. Now I have to complete it again. But I know once I do get the answer again it will just go to the next video without giving me a chance to write the answer I got down so I can go over it in my own time(reverse engineer).

ScrabblePlayer.java
public class ScrabblePlayer {
  // A String representing all of the tiles that this player has
  private String tiles;

  public ScrabblePlayer() {
    tiles = "";
  }

  public String getTiles() {
    return tiles;
  }

  public void addTile(char tile) {
    tiles += tile;
  }

  public boolean hasTile(char tile) {
    return tiles.indexOf(tile) != -1;
  }

  public int getCountOfLetter(char letter) {
    count = 0;
    for (char tile : tiles.toCharArray()) {
      if (letter == tile) {
        count++;
      }
    }
    return count;
  }
}
Example.java
// This code is here for example purposes only
public class Example {

  public static void main(String[] args) {
    ScrabblePlayer player1 = new ScrabblePlayer();
    player1.addTile('d');
    player1.addTile('d');
    player1.addTile('p');
    player1.addTile('e');
    player1.addTile('l');
    player1.addTile('u');

    ScrabblePlayer player2 = new ScrabblePlayer();
    player2.addTile('z');
    player2.addTile('z');
    player2.addTile('y');
    player2.addTile('f');
    player2.addTile('u');
    player2.addTile('z');

    int count = 0;
    // This would set count to 1 because player1 has 1 'p' tile in her collection of tiles
    count = player1.getCountOfLetter('p');
    // This would set count to 2 because player1 has 2 'd'' tiles in her collection of tiles
    count = player1.getCountOfLetter('d');
    // This would set 0, because there isn't an 'a' tile in player1's tiles
    count = player1.getCountOfLetter('a');

    // This will return 3 because player2 has 3 'z' tiles in his collection of tiles
    count = player2.getCountOfLetter('z');
    // This will return 1 because player2 has 1 'f' tiles in his collection of tiles
    count = player2.getCountOfLetter('f');
  }
}

2 Answers

andren
andren
28,558 Points

You are missing the type declaration when you declare your count variable, or put more simply you forgot to type "int" before the "count = 0" declaration. To fix it just add it like this:

public int getCountOfLetter(char letter) {
    int count = 0;
    for (char tile : tiles.toCharArray()) {
      if (letter == tile) {
        count++;
      }
    }
    return count;
}

And your code will pass the challenge.

As far as I am aware there is no way of seeing previous answers.

Chris Jones
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Chris Jones
Java Web Development Techdegree Graduate 23,933 Points

You were really, really close...you just forgot to declare the type for the count variable. Add int before the variable name and you should be good.

On the topic of the code challenges going right to the next video after you've passed them, it is an inconvenience. If I've been struggling with a code challenge, I'll copy and paste my code into a notepad before hitting Submit - just so I can review it after submitting. It might be worth asking Support if they could change that.

Let me know if you have any more questions!