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 trialEvangelos Dimitris
1,260 PointsHow do i pass this test?
I dont get at all what i have to do over here so that i pass the challenge. please , some help would be good.
public class ScrabblePlayer {
private String mHand;
public ScrabblePlayer() {
mHand = "";
}
public String getHand() {
return mHand;
}
public void addTile(char tile) {
// Adds the tile to the hand of the player
mHand += tile;
}
public boolean hasTile(char tile) {
return mHand.indexOf(tile) > -1;
}
public String getTileCount(){
String count="";
for (char tile : mHand.toCharArray()){
char display = '-';
if(mHand.indexOf(0) >= 0)
{
count += display;
}
count +=tile;
}
return count;
}
}
2 Answers
Evangelos Dimitris
1,260 PointsThanks a lot my friend. Your example really helped me look through my mistakes and understand better some concepts. Appreciated!
Grigorij Schleifer
10,365 PointsVeeeery nice !!! Glad to help you :)
Grigorij Schleifer
10,365 PointsHi Evangelos,
check this out:
[ https://teamtreehouse.com/community/need-some-clarification ]
Please let me know if you have more questions !!!
Grigorij
Grigorij Schleifer
10,365 PointsGrigorij Schleifer
10,365 PointsHey Evangelos,
additional to my link, let me go through your code and modificate some minor discrepancies:
Let me correct the first line of code:
public String getTileCount(){
The method getTileCount() takes an argument and returns an integer not a String!!!!
The argument should be a primitive type char (let us name it "letter") that we can compare with all chars inside mHand (see later). AND don´t forget that we return an integer, that gives us the number of characters inside mHand that are equal to "letter".
So your method declaration should look like this:
public int getTileCount(char letter){
The next line is more than beatifull !!!! You create here a for loop, that goes through an array of chars of mHand. So you can compare your argument "letter" with every tile of mHand. I am sure that James Gosling is very proud of you :)
for (char tile : mHand.toCharArray()){
And we come to this line:
if(mHand.indexOf(0) >= 0)
Here you try to use the indexOf() method that take an integer 0 ! BUT you don´t need to do this in the challenge:) Just for understanding the indexOf() method ... The indexOf() method can take a char like indexOf('a') and returns an integer where 'a' is inside a String ...
If you have a String of your name "Evangelos". The indexOf('a') will return an integer where
a
is in your nameThe result is
2
So 'a' is on the place 2, because String is zero based :)
I see, that I chatter too much :)
Inside your perfect coded for-loop, that creates a char array of mHand. Make an IF statement
I hope this huge amount of text isn´t too confusing ( I had 2 heineken today )
Please let me know if you need more help :)
Grigorij