Class BoardModel
- java.lang.Object
-
- it.unicam.cs.pa.mastermind.gamecore.Observable
-
- it.unicam.cs.pa.mastermind.gamecore.BoardModel
-
public class BoardModel extends Observable
Responsabilità: gestire le informazioni relative ad una plancia di gioco. Rientra nei pattern MVC e Observer.- Author:
- Francesco Pio Stelluti, Francesco Coppola
-
-
Constructor Summary
Constructors Constructor Description BoardModel(int sequenceLength, int maxAttempts)
Costruttore di una plancia.
-
Method Summary
Modifier and Type Method Description boolean
addAttempt(java.util.List<ColorPegs> attempt)
Aggiunge alla plancia una nuova sequenza di pioli tentativo e la relativa sequenza di pioli indizio, calcolata all'interno del metodoint
attemptsInserted()
java.util.List<java.util.Map.Entry<java.util.List<ColorPegs>,java.util.List<ColorPegs>>>
getAttemptAndClueList()
Ottenimento di unaList
contenente tutta le coppie sequenza tentativo - sequenza indizio inserite nella plancia.java.util.List<ColorPegs>
getLastAttempt()
java.util.List<ColorPegs>
getLastClue()
int
getSequenceLength()
java.util.List<ColorPegs>
getSequenceToGuess()
boolean
hasBreakerGuessed()
boolean
isBoardEmpty()
int
leftAttempts()
boolean
removeLastAttemptAndClue()
Rimozione dell'ultima coppia sequenza tentativo - sequenza indizio inserita nella plancia.boolean
setSequenceToGuess(java.util.List<ColorPegs> toGuess)
Imposta la sequenza di pioli da indovinare.-
Methods inherited from class it.unicam.cs.pa.mastermind.gamecore.Observable
addObserver, notifyObservers, removeObserver
-
-
-
-
Constructor Detail
-
BoardModel
public BoardModel(int sequenceLength, int maxAttempts)
Costruttore di una plancia. L'impiego di una LinkedHashMap quale particolare struttura dati per tenere traccia delle sequenze inserite permette di tenere conto anche dell'ordine di inserimento.- Parameters:
sequenceLength
- massima delle sequenze presenti in questa planciamaxAttempts
- numero massimo di tentativi possibili per indovinare lasequenceToGuess
-
-
Method Detail
-
getSequenceLength
public int getSequenceLength()
- Returns:
- int lunghezza massima delle sequenze presenti in questa plancia
-
getSequenceToGuess
public java.util.List<ColorPegs> getSequenceToGuess()
- Returns:
- List di
ColorPegs
da indovinare.
-
setSequenceToGuess
public boolean setSequenceToGuess(java.util.List<ColorPegs> toGuess) throws java.lang.IllegalArgumentException
Imposta la sequenza di pioli da indovinare.- Parameters:
toGuess
- lista diColorPegs
della sequenza da indovinare- Returns:
- un booleano a seconda della riuscita o meno dell'inserimento nella plancia di gioco
- Throws:
java.lang.IllegalArgumentException
- se la lunghezza della sequenza inserita non è valida
-
leftAttempts
public int leftAttempts()
- Returns:
- int numero di tentativi rimasti
-
attemptsInserted
public int attemptsInserted()
- Returns:
- int numero di tentativi inseriti fino ad ora
-
isBoardEmpty
public boolean isBoardEmpty()
- Returns:
- boolean che indica se sono stati inseriti o meno tentativi nella plancia
-
addAttempt
public boolean addAttempt(java.util.List<ColorPegs> attempt) throws java.lang.IllegalArgumentException
Aggiunge alla plancia una nuova sequenza di pioli tentativo e la relativa sequenza di pioli indizio, calcolata all'interno del metodo- Parameters:
attempt
- la sequenza da inserire- Returns:
- boolean relativo alla riuscita dell'inserimento
- Throws:
java.lang.IllegalArgumentException
- in caso di inserimento illegale
-
removeLastAttemptAndClue
public boolean removeLastAttemptAndClue()
Rimozione dell'ultima coppia sequenza tentativo - sequenza indizio inserita nella plancia.- Returns:
- boolean relativo alla riuscita della rimozione.
-
getLastAttempt
public java.util.List<ColorPegs> getLastAttempt()
-
getLastClue
public java.util.List<ColorPegs> getLastClue()
-
getAttemptAndClueList
public java.util.List<java.util.Map.Entry<java.util.List<ColorPegs>,java.util.List<ColorPegs>>> getAttemptAndClueList()
Ottenimento di unaList
contenente tutta le coppie sequenza tentativo - sequenza indizio inserite nella plancia.- Returns:
- List contenenti Map.Entry con le sequenze di
ColorPegs
inserite come tentativo e le relative sequenze indizio
-
hasBreakerGuessed
public boolean hasBreakerGuessed()
- Returns:
- boolean che indica se il giocatore Breaker ha indovinato o meno la sequenza del Maker in base alle informazioni contenute nella plancia
-
-