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 booleanaddAttempt(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 metodointattemptsInserted()java.util.List<java.util.Map.Entry<java.util.List<ColorPegs>,java.util.List<ColorPegs>>>getAttemptAndClueList()Ottenimento di unaListcontenente tutta le coppie sequenza tentativo - sequenza indizio inserite nella plancia.java.util.List<ColorPegs>getLastAttempt()java.util.List<ColorPegs>getLastClue()intgetSequenceLength()java.util.List<ColorPegs>getSequenceToGuess()booleanhasBreakerGuessed()booleanisBoardEmpty()intleftAttempts()booleanremoveLastAttemptAndClue()Rimozione dell'ultima coppia sequenza tentativo - sequenza indizio inserita nella plancia.booleansetSequenceToGuess(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
ColorPegsda indovinare.
-
setSequenceToGuess
public boolean setSequenceToGuess(java.util.List<ColorPegs> toGuess) throws java.lang.IllegalArgumentException
Imposta la sequenza di pioli da indovinare.- Parameters:
toGuess- lista diColorPegsdella 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 unaListcontenente tutta le coppie sequenza tentativo - sequenza indizio inserite nella plancia.- Returns:
- List contenenti Map.Entry con le sequenze di
ColorPegsinserite 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
-
-