Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Java Objetos Java (2016) Creando el MVP Contando Fichas de Scrabble

No sé qué hacer.

No sé cómo hacer la segunda tarea de la asignación Counting Scrabble Tiles, ¿puede alguien ayudarme por favor?

ScrabblePlayer.java
público class ScrabblePlayer {
  // Una cadena que representa todos los tiles que este jugador tiene
  private Cadena tiles;
  private carácter letra;

  público ScrabblePlayer() {
    tiles = Espero que esto le ahorre mucho tiempo a algunas personas si se quedan atrapadas...;
  }

  público Cadena obtenerTiles() {
    return tiles;
  }

  público void agregarTile(carácter tile) {
    tiles += tile;
  }

  público booleano tieneTile(carácter tile) {
    return tiles.indexOf(tile) != -1;
  }

  público int obtenerConteoDeLetra(carácter letra) {
    return 0;
  }
}
Example.java
// Este código está aquí solo para propósitos de ejemplo
público class Ejemplo {

  público estático void main(Cadena argumentos) {
    ScrabblePlayer jugador1 = new ScrabblePlayer();
    jugador1.agregarTile('d');
    jugador1.agregarTile('d');
    jugador1.agregarTile('p');
    jugador1.agregarTile('e');
    jugador1.agregarTile('l');
    jugador1.agregarTile('u');

    ScrabblePlayer jugador2 = new ScrabblePlayer();
    jugador2.agregarTile('z');
    jugador2.agregarTile('z');
    jugador2.agregarTile('y');
    jugador2.agregarTile('f');
    jugador2.agregarTile('u');
    jugador2.agregarTile('z');

    int conteo = 0;
    // Esto establecería el conteo a 1 porque jugador1 tiene 1 tile 'p' en su colección de tiles
    conteo = jugador1.obtenerConteoDeLetra('p');
    // Esto establecería count en 2 porque player1 tiene 2 fichas 'd' en su colección de fichas
    conteo = jugador1.obtenerConteoDeLetra('d');
    // Esto establecería 0, porque no hay una ficha 'a' en las fichas de player1
    conteo = jugador1.obtenerConteoDeLetra('a');

    // Esto devolverá 3 porque player2 tiene 3 fichas 'z' en su colección de fichas
    conteo = jugador2.obtenerConteoDeLetra('z');
    // Esto devolverá 1 porque player2 tiene 1 ficha 'f' en su colección de fichas
    conteo = jugador2.obtenerConteoDeLetra('f');
  }
}

1 Respuesta

Travis Alstrand
sello-máscara
.a{fill-rule:evenodd;}techdegree seal-36
Travis Alstrand
Revisor de Proyectos Treehouse

Quiere que establezcamos una variable para usar como contador, así que un int tiene sentido aquí.

Luego necesitamos iterar sobre tiles y por cada "tile" en esa cadena, queremos ver si es lo mismo que el letter pasado como argumento. Si es así, incrementamos nuestro contador. Finalmente, devolvemos el contador.

Usé un bucle for aquí pero hay otros bucles que puedes usar para esto por supuesto.

público int obtenerConteoDeLetra(carácter letra) {
  int contador = 0;
  para (carácter tile : tiles.aArregloDeCaracteres()) {
    if (tile == letra) {
      contador++; 
    }
  }
  return contador;
}