Scrabble PROP
Subgrup 43.2: Raül Box, Aina Serra, Ada Peña & Martina Cusidó
 
Carregant...
Cercant...
Cap coincidència
Referència de la Classe controladors.CtrlPartida

Classe que representa el controlador d'una partida de Scrabble. Més...

Diagrama de col·laboració per a controladors.CtrlPartida:

Mètodes públics

 CtrlPartida (CtrlDomini CtrlDomini) throws IOException
 Constructor del controlador de la partida.
 
Partida crearPartida (Jugador jugador1, Jugador jugador2, String idioma, int mida, int idPartida) throws IOException
 Crea una nova partida.
 
void carregarPartida (Partida partida)
 Carrega una partida existent.
 
void ferJugadaMaquina ()
 Gestiona el desenvolupament de la jugada de la màquina.
 
void finalitzarCt ()
 Finalitza la partida actual.
 
void pausarCt ()
 Pausa la partida actual.
 
void encursCt ()
 Reprén la partida actual.
 
int colocarParaula (String paraulaStr, int fila, int columna, boolean horitzontal)
 Col·loca una paraula al taulell.
 
boolean comprova_crosschecks (List< Fitxa > paraulaCompleta, int fila, int columna, boolean horitzontal, Taulell taulell_actual)
 Comprova si totes les lletres d'una paraula col·locada són vàlides segons els crosschecks de les caselles corresponents del taulell.
 
List< FitxagetLletresJugadorTorn ()
 Obté les fitxes actuals del jugador del torn.
 
void imprimirTaulell ()
 Mostra el taulell actual de la partida.
 
Bossa getBossa1 ()
 Obté la bossa de fitxes de la partida.
 
int canviarFitxes (List< String > fitxesACanviar, int numFitxes, boolean ve_de_canviar_fitxes, String lletra1, String lletra2)
 Canvia un cert nombre de fitxes de la mà del jugador actual.
 
boolean passarTorn ()
 Passa el torn al següent jugador.
 
boolean contraMaquina ()
 Indica si la partida és contra màquina.
 
String jugador_controladorNOM ()
 Obté el nom del jugador actual.
 
String jugadorNoActual_controladorNOM ()
 Obté el nom del jugador no actual.
 
int jugador_controladorID ()
 Obté l'identificador del jugador actual.
 
int jugador_controladorNUM_FITXES ()
 Obté el nombre de fitxes que té el jugador actual.
 
int controladorTORN ()
 Obté el torn actual de la partida.
 
boolean finalitzarPerLletresEsgotades ()
 Finalitza la partida si les fitxes s'han esgotat.
 
boolean finalitzarPerTornsConsecutius ()
 Finalitza la partida si s'han passat torns consecutius sense acció.
 
void abandonarPartida ()
 El jugador actual abandona la partida.
 
Partida getPartida ()
 Obté l'objecte Partida associat al controlador.
 

Mètodes Públics Estàtics

static CtrlPartida getInstancia (CtrlDomini CtrlDomini)
 Obté la instància única del controlador de partida.
 

Atributs de Paquet

Jugador jugador1
 
Jugador jugador2
 
int mida
 
String idioma
 
String lletra
 
String lletra2
 
List< String > fitxesRack
 

Mètodes Privats

String getDictionaryFileName (String idioma)
 Obté el nom del fitxer del diccionari segons l'idioma.
 
int comprova_paraula (List< Fitxa > paraulaCompleta, int fila, int columna, boolean horitzontal)
 Comprova si una paraula és vàlida.
 
boolean posicioCorrecta (List< Fitxa > paraulaCompleta, int fila, int columna, boolean horitzontal, Taulell taulell_actual)
 Comprova si la posició d'una paraula és vàlida dins dels límits del taulell.
 
boolean paraula_centre (List< Fitxa > paraulaCompleta, int fila, int columna, boolean horitzontal, Taulell taulell_actual)
 Comprova si una paraula col·locada passa pel centre del taulell.
 
boolean tocaLletra (List< Fitxa > paraulaCompleta, int fila, int columna, boolean horitzontal, Taulell taulell_actual)
 Comprova si una paraula col·locada toca alguna lletra existent al taulell.
 
boolean comprovar_noves_paraules (Taulell t, Fitxa f, Pair< Integer, Integer > coords)
 Comprova si una lletra és vàlida per a una casella que formi paraula transversal vertical.
 
boolean letterIsInCrosscheks (String letter, boolean[] crosschecks)
 Comprova si una lletra està present en els crosschecks d'una casella.
 

Mètodes Privats Estàtics

static List< String > tokenize (String word)
 Genera una llista amb les lletres i dígrafs del paràmetre.
 

Atributs Privats

Partida partida
 
DAWG diccionari
 

Atributs Privats Estàtics

static CtrlDomini CtrlDomini
 
static CtrlPartida instancia = null
 
static final Set< String > DIGRAFS = Set.of("RR", "LL", "NY", "CH", "L·L")
 

Descripció Detallada

Classe que representa el controlador d'una partida de Scrabble.

Documentació del Constructor i el Destructor

◆ CtrlPartida()

controladors.CtrlPartida.CtrlPartida ( CtrlDomini CtrlDomini) throws IOException
inline

Constructor del controlador de la partida.

El relaciona amb la instància de Controlador de Domini que l'ha creat

Paràmetres
CtrlDominiInstància de Controlador de Domini que fa la crida.
Excepcions
IOExceptionSi hi ha un error en carregar el diccionari.
Gràfic de crides a aquesta funció:

Documentació de les Funcions Membre

◆ abandonarPartida()

void controladors.CtrlPartida.abandonarPartida ( )
inline

El jugador actual abandona la partida.

Gràfic de crides d'aquesta funció:

◆ canviarFitxes()

int controladors.CtrlPartida.canviarFitxes ( List< String > fitxesACanviar,
int numFitxes,
boolean ve_de_canviar_fitxes,
String lletra1,
String lletra2 )
inline

Canvia un cert nombre de fitxes de la mà del jugador actual.

Aquesta funció elimina les fitxes especificades de la mà del jugador actual i les retorna a la bossa, després agafa el mateix nombre de fitxes noves de la bossa. També gestiona el cas dels comodins.

Codis de retorn:

  • 0: Canvi realitzat correctament.
  • 7: Error en eliminar fitxes del rack del jugador.
  • 8: No hi ha prou fitxes a la bossa per completar el canvi.
Paràmetres
fitxesACanviarLes fitxes a canviar.
numFitxesEl nombre de fitxes a canviar.
ve_de_canviar_fitxesIndica si prové d'una acció de canvi de fitxes.
lletra1En cas que s'utilitzi un comodí, lletra a substituir.
lletra2En cas que s'utilitzin dos comodins, 2a lletra a substituir.
Retorna
Un codi d'error que indica l'estat de l'operació (veure descripció).
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ carregarPartida()

void controladors.CtrlPartida.carregarPartida ( Partida partida)
inline

Carrega una partida existent.

Paràmetres
partidaLa partida a carregar.
Gràfic de crides d'aquesta funció:

◆ colocarParaula()

int controladors.CtrlPartida.colocarParaula ( String paraulaStr,
int fila,
int columna,
boolean horitzontal )
inline

Col·loca una paraula al taulell.

Aquesta funció s'encarrega de validar i inserir una paraula al taulell, comprovant que les fitxes utilitzades estiguin disponibles al rack del jugador o al taulell, que la paraula sigui vàlida segons el diccionari i les regles del joc, i actualitza la puntuació del jugador. També gestiona l'ús de comodins i l'actualització de les estadístiques del jugador.

Codis de retorn:

  • 0: Paraula col·locada correctament.
  • 1: La paraula se surt del taulell.
  • 2: La paraula no existeix al diccionari.
  • 3: Alguna lletra no està ni al rack ni al taulell.
  • 4: La paraula no passa pel centre en el primer torn.
  • 5: La paraula no toca cap fitxa existent.
  • 6: Es forma una paraula transversal invàlida.
  • 7: Error en eliminar fitxes del rack.
  • 8: No hi ha prou fitxes a la bossa.
  • 9: Hi ha conflicte amb una fitxa ja col·locada al taulell.
  • 10: Es forma una paraula principal invàlida.
Paràmetres
paraulaStrLa paraula a col·locar (com a string).
filaLa fila inicial on es col·locarà la paraula.
columnaLa columna inicial on es col·locarà la paraula.
horitzontalIndica si la paraula es col·loca horitzontalment (true) o verticalment (false).
Retorna
Un codi d'error segons el resultat de la col·locació.
Gràfic de crides d'aquesta funció:

◆ comprova_crosschecks()

boolean controladors.CtrlPartida.comprova_crosschecks ( List< Fitxa > paraulaCompleta,
int fila,
int columna,
boolean horitzontal,
Taulell taulell_actual )
inline

Comprova si totes les lletres d'una paraula col·locada són vàlides segons els crosschecks de les caselles corresponents del taulell.

Paràmetres
paraulaCompletaLes fitxes que formen la paraula.
filaLa fila inicial de la paraula.
columnaLa columna inicial de la paraula.
horitzontalIndica si la paraula es col·loca horitzontalment.
taulell_actualEl taulell actual de la partida.
Retorna
true si totes les lletres són vàlides segons els crosschecks, false en cas contrari.
Gràfic de crides d'aquesta funció:

◆ comprova_paraula()

int controladors.CtrlPartida.comprova_paraula ( List< Fitxa > paraulaCompleta,
int fila,
int columna,
boolean horitzontal )
inlineprivate

Comprova si una paraula és vàlida.

Codis de retorn:

  • 0: Paraula vàlida.
  • 1: La paraula se surt del taulell.
  • 2: La paraula no existeix al diccionari.
  • 3: Alguna lletra no està ni al rack ni al taulell.
  • 4: La paraula no passa pel centre en el primer torn.
  • 5: La paraula no toca cap fitxa existent.
  • 6: Es forma una paraula transversal invàlida.
  • 9: Hi ha conflicte amb una fitxa ja col·locada al taulell.
  • 10: Es forma una paraula principal invàlida.
Paràmetres
paraulaCompletaLes fitxes que formen la paraula.
filaLa fila inicial.
columnaLa columna inicial.
horitzontalIndica si la paraula es col·loca horitzontalment (true) o verticalment (false).
Retorna
Un codi d'error segons el resultat de la comprovació.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ comprovar_noves_paraules()

boolean controladors.CtrlPartida.comprovar_noves_paraules ( Taulell t,
Fitxa f,
Pair< Integer, Integer > coords )
inlineprivate

Comprova si una lletra és vàlida per a una casella que formi paraula transversal vertical.

Paràmetres
tEl taulell actual de la partida.
fLa fitxa a comprovar.
coordsLes coordenades de la casella.
Retorna
true si la lletra és vàlida, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ contraMaquina()

boolean controladors.CtrlPartida.contraMaquina ( )
inline

Indica si la partida és contra màquina.

Retorna
true si es juga contra maquina, false d'altra manera.

◆ controladorTORN()

int controladors.CtrlPartida.controladorTORN ( )
inline

Obté el torn actual de la partida.

Retorna
El número del torn actual.

◆ crearPartida()

Partida controladors.CtrlPartida.crearPartida ( Jugador jugador1,
Jugador jugador2,
String idioma,
int mida,
int idPartida ) throws IOException
inline

Crea una nova partida.

Paràmetres
jugador1El primer jugador.
jugador2El segon jugador.
idiomaL'idioma del diccionari.
midaLa mida del taulell.
idPartidaL'identificador de la partida.
Excepcions
IOExceptionSi hi ha un error en carregar el diccionari.
Retorna
La partida creada.
Gràfic de crides d'aquesta funció:

◆ encursCt()

void controladors.CtrlPartida.encursCt ( )
inline

Reprén la partida actual.

◆ ferJugadaMaquina()

void controladors.CtrlPartida.ferJugadaMaquina ( )
inline

Gestiona el desenvolupament de la jugada de la màquina.

Gràfic de crides d'aquesta funció:

◆ finalitzarCt()

void controladors.CtrlPartida.finalitzarCt ( )
inline

Finalitza la partida actual.

◆ finalitzarPerLletresEsgotades()

boolean controladors.CtrlPartida.finalitzarPerLletresEsgotades ( )
inline

Finalitza la partida si les fitxes s'han esgotat.

Retorna
true si la partida ha finalitzat, false en cas contrari.
Gràfic de crides d'aquesta funció:

◆ finalitzarPerTornsConsecutius()

boolean controladors.CtrlPartida.finalitzarPerTornsConsecutius ( )
inline

Finalitza la partida si s'han passat torns consecutius sense acció.

Retorna
true si la partida ha finalitzat, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ getBossa1()

Bossa controladors.CtrlPartida.getBossa1 ( )
inline

Obté la bossa de fitxes de la partida.

Retorna
L'objecte Bossa de la partida.
Gràfic de crides a aquesta funció:

◆ getDictionaryFileName()

String controladors.CtrlPartida.getDictionaryFileName ( String idioma)
inlineprivate

Obté el nom del fitxer del diccionari segons l'idioma.

Paràmetres
idiomaL'idioma seleccionat.
Retorna
El nom del fitxer del diccionari.
Gràfic de crides a aquesta funció:

◆ getInstancia()

static CtrlPartida controladors.CtrlPartida.getInstancia ( CtrlDomini CtrlDomini)
inlinestatic

Obté la instància única del controlador de partida.

Paràmetres
CtrlDominiInstància del controlador de domini.
Retorna
La instància única de CtrlPartida.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ getLletresJugadorTorn()

List< Fitxa > controladors.CtrlPartida.getLletresJugadorTorn ( )
inline

Obté les fitxes actuals del jugador del torn.

Retorna
Una llista de fitxes del jugador actual.

◆ getPartida()

Partida controladors.CtrlPartida.getPartida ( )
inline

Obté l'objecte Partida associat al controlador.

Retorna
L'objecte Partida actual.

◆ imprimirTaulell()

void controladors.CtrlPartida.imprimirTaulell ( )
inline

Mostra el taulell actual de la partida.

◆ jugador_controladorID()

int controladors.CtrlPartida.jugador_controladorID ( )
inline

Obté l'identificador del jugador actual.

Retorna
L'identificador del jugador actual.
Gràfic de crides d'aquesta funció:

◆ jugador_controladorNOM()

String controladors.CtrlPartida.jugador_controladorNOM ( )
inline

Obté el nom del jugador actual.

Retorna
El nom del jugador actual.
Gràfic de crides d'aquesta funció:

◆ jugador_controladorNUM_FITXES()

int controladors.CtrlPartida.jugador_controladorNUM_FITXES ( )
inline

Obté el nombre de fitxes que té el jugador actual.

Retorna
El nombre de fitxes del jugador actual.
Gràfic de crides d'aquesta funció:

◆ jugadorNoActual_controladorNOM()

String controladors.CtrlPartida.jugadorNoActual_controladorNOM ( )
inline

Obté el nom del jugador no actual.

Retorna
El nom del jugador no actual.
Gràfic de crides d'aquesta funció:

◆ letterIsInCrosscheks()

boolean controladors.CtrlPartida.letterIsInCrosscheks ( String letter,
boolean[] crosschecks )
inlineprivate

Comprova si una lletra està present en els crosschecks d'una casella.

Paràmetres
letterLa lletra que es vol comprovar.
crosschecksUn array de valors booleans que indica les lletres vàlides per a la casella.
Retorna
true si la lletra està present en els crosschecks, false en cas contrari.
Gràfic de crides a aquesta funció:

◆ paraula_centre()

boolean controladors.CtrlPartida.paraula_centre ( List< Fitxa > paraulaCompleta,
int fila,
int columna,
boolean horitzontal,
Taulell taulell_actual )
inlineprivate

Comprova si una paraula col·locada passa pel centre del taulell.

Paràmetres
paraulaCompletaLes fitxes que formen la paraula.
filaLa fila inicial de la paraula.
columnaLa columna inicial de la paraula.
horitzontalIndica si la paraula es col·loca horitzontalment.
taulell_actualEl taulell actual de la partida.
Retorna
true si la paraula passa pel centre del taulell, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ passarTorn()

boolean controladors.CtrlPartida.passarTorn ( )
inline

Passa el torn al següent jugador.

Retorna
true si la partida ha finalitzat per torns consecutius, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ pausarCt()

void controladors.CtrlPartida.pausarCt ( )
inline

Pausa la partida actual.

◆ posicioCorrecta()

boolean controladors.CtrlPartida.posicioCorrecta ( List< Fitxa > paraulaCompleta,
int fila,
int columna,
boolean horitzontal,
Taulell taulell_actual )
inlineprivate

Comprova si la posició d'una paraula és vàlida dins dels límits del taulell.

Paràmetres
paraulaCompletaLes fitxes que formen la paraula.
filaLa fila inicial de la paraula.
columnaLa columna inicial de la paraula.
horitzontalIndica si la paraula es col·loca horitzontalment.
taulell_actualEl taulell actual de la partida.
Retorna
true si la posició és vàlida, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ tocaLletra()

boolean controladors.CtrlPartida.tocaLletra ( List< Fitxa > paraulaCompleta,
int fila,
int columna,
boolean horitzontal,
Taulell taulell_actual )
inlineprivate

Comprova si una paraula col·locada toca alguna lletra existent al taulell.

Paràmetres
paraulaCompletaLes fitxes que formen la paraula.
filaLa fila inicial de la paraula.
columnaLa columna inicial de la paraula.
horitzontalIndica si la paraula es col·loca horitzontalment.
taulell_actualEl taulell actual de la partida.
Retorna
true si la paraula toca alguna lletra existent al taulell, False en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ tokenize()

static List< String > controladors.CtrlPartida.tokenize ( String word)
inlinestaticprivate

Genera una llista amb les lletres i dígrafs del paràmetre.

Recorre l'string d'entrada segmentant tots els seus elements identificant correctament els dígrafs.

Paràmetres
wordParaula a segmentar.
Retorna
Una llista amb els elements ja segmentats.
Gràfic de crides a aquesta funció:

Documentació de les Dades Membre

◆ CtrlDomini

CtrlDomini controladors.CtrlPartida.CtrlDomini
staticprivate

◆ diccionari

DAWG controladors.CtrlPartida.diccionari
private

◆ DIGRAFS

final Set<String> controladors.CtrlPartida.DIGRAFS = Set.of("RR", "LL", "NY", "CH", "L·L")
staticprivate

◆ fitxesRack

List<String> controladors.CtrlPartida.fitxesRack
package

◆ idioma

String controladors.CtrlPartida.idioma
package

◆ instancia

CtrlPartida controladors.CtrlPartida.instancia = null
staticprivate

◆ jugador1

Jugador controladors.CtrlPartida.jugador1
package

◆ jugador2

Jugador controladors.CtrlPartida.jugador2
package

◆ lletra

String controladors.CtrlPartida.lletra
package

◆ lletra2

String controladors.CtrlPartida.lletra2
package

◆ mida

int controladors.CtrlPartida.mida
package

◆ partida

Partida controladors.CtrlPartida.partida
private

La documentació d'aquesta classe es va generar a partir del següent fitxer: