Classe que representa el controlador d'una partida de Scrabble. Més...
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< Fitxa > | getLletresJugadorTorn () |
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") |
Classe que representa el controlador d'una partida de Scrabble.
|
inline |
Constructor del controlador de la partida.
El relaciona amb la instància de Controlador de Domini que l'ha creat
CtrlDomini | Instància de Controlador de Domini que fa la crida. |
IOException | Si hi ha un error en carregar el diccionari. |
|
inline |
El jugador actual abandona la partida.
|
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:
fitxesACanviar | Les fitxes a canviar. |
numFitxes | El nombre de fitxes a canviar. |
ve_de_canviar_fitxes | Indica si prové d'una acció de canvi de fitxes. |
lletra1 | En cas que s'utilitzi un comodí, lletra a substituir. |
lletra2 | En cas que s'utilitzin dos comodins, 2a lletra a substituir. |
|
inline |
Carrega una partida existent.
partida | La partida a carregar. |
|
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:
paraulaStr | La paraula a col·locar (com a string). |
fila | La fila inicial on es col·locarà la paraula. |
columna | La columna inicial on es col·locarà la paraula. |
horitzontal | Indica si la paraula es col·loca horitzontalment (true) o verticalment (false). |
|
inline |
Comprova si totes les lletres d'una paraula col·locada són vàlides segons els crosschecks de les caselles corresponents del taulell.
paraulaCompleta | Les fitxes que formen la paraula. |
fila | La fila inicial de la paraula. |
columna | La columna inicial de la paraula. |
horitzontal | Indica si la paraula es col·loca horitzontalment. |
taulell_actual | El taulell actual de la partida. |
|
inlineprivate |
Comprova si una paraula és vàlida.
Codis de retorn:
paraulaCompleta | Les fitxes que formen la paraula. |
fila | La fila inicial. |
columna | La columna inicial. |
horitzontal | Indica si la paraula es col·loca horitzontalment (true) o verticalment (false). |
|
inlineprivate |
Comprova si una lletra és vàlida per a una casella que formi paraula transversal vertical.
t | El taulell actual de la partida. |
f | La fitxa a comprovar. |
coords | Les coordenades de la casella. |
|
inline |
Indica si la partida és contra màquina.
|
inline |
Obté el torn actual de la partida.
|
inline |
Crea una nova partida.
jugador1 | El primer jugador. |
jugador2 | El segon jugador. |
idioma | L'idioma del diccionari. |
mida | La mida del taulell. |
idPartida | L'identificador de la partida. |
IOException | Si hi ha un error en carregar el diccionari. |
|
inline |
Reprén la partida actual.
|
inline |
Gestiona el desenvolupament de la jugada de la màquina.
|
inline |
Finalitza la partida actual.
|
inline |
Finalitza la partida si les fitxes s'han esgotat.
|
inline |
Finalitza la partida si s'han passat torns consecutius sense acció.
|
inline |
Obté la bossa de fitxes de la partida.
|
inlineprivate |
Obté el nom del fitxer del diccionari segons l'idioma.
idioma | L'idioma seleccionat. |
|
inlinestatic |
Obté la instància única del controlador de partida.
CtrlDomini | Instància del controlador de domini. |
|
inline |
Obté les fitxes actuals del jugador del torn.
|
inline |
|
inline |
Mostra el taulell actual de la partida.
|
inline |
Obté l'identificador del jugador actual.
|
inline |
Obté el nom del jugador actual.
|
inline |
Obté el nombre de fitxes que té el jugador actual.
|
inline |
Obté el nom del jugador no actual.
|
inlineprivate |
Comprova si una lletra està present en els crosschecks d'una casella.
letter | La lletra que es vol comprovar. |
crosschecks | Un array de valors booleans que indica les lletres vàlides per a la casella. |
|
inlineprivate |
Comprova si una paraula col·locada passa pel centre del taulell.
paraulaCompleta | Les fitxes que formen la paraula. |
fila | La fila inicial de la paraula. |
columna | La columna inicial de la paraula. |
horitzontal | Indica si la paraula es col·loca horitzontalment. |
taulell_actual | El taulell actual de la partida. |
|
inline |
Passa el torn al següent jugador.
|
inline |
Pausa la partida actual.
|
inlineprivate |
Comprova si la posició d'una paraula és vàlida dins dels límits del taulell.
paraulaCompleta | Les fitxes que formen la paraula. |
fila | La fila inicial de la paraula. |
columna | La columna inicial de la paraula. |
horitzontal | Indica si la paraula es col·loca horitzontalment. |
taulell_actual | El taulell actual de la partida. |
|
inlineprivate |
Comprova si una paraula col·locada toca alguna lletra existent al taulell.
paraulaCompleta | Les fitxes que formen la paraula. |
fila | La fila inicial de la paraula. |
columna | La columna inicial de la paraula. |
horitzontal | Indica si la paraula es col·loca horitzontalment. |
taulell_actual | El taulell actual de la partida. |
|
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.
word | Paraula a segmentar. |
|
staticprivate |
|
private |
|
staticprivate |
|
package |
|
package |
|
staticprivate |
|
package |
|
package |
|
package |
|
package |
|
package |
|
private |