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

Vitaly Gorelik
Vitaly Gorelik
621 Points

Method

I dont understand what I did wrong..

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 getCountOfLetter(char letter) {
    int howMany = letter.indexOf(tiles) ;
    return howMany;

  }
}
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');
    count = player2.getCountOfLetter(' 
  }
}
Javier Mera
Javier Mera
16,472 Points

Your getCountOfLetter method is missing the return type :D. Also within the same method, a char type does not have a method indexOf so maybe you've mixed up somethings in there. Hope this helps.

3 Answers

Vitaly Gorelik
Vitaly Gorelik
621 Points

but i wrote "return howMany" which is an int

Javier Mera
Javier Mera
16,472 Points

But the method declaration needs a return type, just like you have done with the other methods within that class.

public int getCountOfLetter(...) {...}
Vitaly Gorelik
Vitaly Gorelik
621 Points

so what am i supposed to add?

Javier Mera
Javier Mera
16,472 Points

You are only missing the return type for that method, so if your method is trying to return an integer then your method needs to be declared with int as return type.