|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectit.prazzoli.tictactoe.board
public class board
La classe board descrive la tavola del gioco, questa è composta da nove celle. Ciascuna cella può contenere X O oppure E ( qui si suppone di giocare con i simboli { X , O , E } il simbolo E rappresenta il valore vuoto ). Sebbene sia possibile utilizzare qualunque combinazione di caratteri si decide questo in quanto standard, in particolare si utilizza E per rendere più chiara la rappresentazione. La classe consente di gestire board in due modi: come matrice 3X3. dove vi sono tre righe e tre colonne, le dimensioni di questa matricesono state parametrizzate, sarebbe pertanto possibile utilizzare matrici di dimensioni differenti modificando un parametro della classe. come numero intero. Risulta conveniente riuscire a rappresentare e gestire la configurazione attuale della board utilizzando un numero intero; il funzionamento questa caratteristica si basa sul fatto che ogni casella può contenere O, X, E. Conveniamo di utilizzare un numero a 32 bit per rappresentare la board, la gestione di valori interi risulta comoda e talvolta atomica. Se consideriamo la seguente mappatura tra valori e posizioni: 0 1 2 3 4 5 6 7 8 X = 01b O = 10b E = 11b Possiamo ora, in modo agevole, eseguire tale conversione concateno i valori e formando un numero binario dove le cifre meno significative LSB sono a destra : AA BB CC DD EE FF GG HH II Cella_0 Cella_1 Cella_2 Cella_3 Cella_4 Cella_5 Cella_6 Cella_7 Cella_8 Il numero binario che rappresenta la board risulterà dalla concatenazione dei valori: AABBCCDDEEFFGGHHII A questo punto il numero binario così ottenuto viene convertito in intero. E’ possibile applicare l’operazione inversa trasformando l’intero in binario, andando poi a popolare i valori nella matrice. L'utilizzo di un modo piuttosto che l'altro è indifferente ai fini del funzionamento. Esempio nella memorizzazione di board dal database è convenite utilizzare notazione intero. Per rappresentare le board su schermo è convenite utilizzare notazioni matriciali. La notazione intero risulta migliore ai fini di prestazioni di esecuzione, ma non risulta interpretabile direttamente.
Constructor Summary | |
---|---|
board()
|
|
board(java.lang.String sBOARD_ID,
java.lang.String sFATHER_ID,
java.lang.String sBOARD,
java.lang.String sPLAYER,
java.lang.String sSCORE,
java.lang.String sMINMAX)
|
Method Summary | |
---|---|
int |
boardToInt()
CONVEETO LA BOARD da MATRIX A INT questa rappresenta la base del gioco ogni casella può contenere O, X, oppure vuoto. conveniamo di utilizzare un numero a 32 bit per rappresentare la board. |
java.lang.Object |
boardToMatrix()
|
java.lang.Object |
boardToMatrix(boolean removeE)
|
int |
evaluateBoard(player cPlayer,
player oPlayer)
|
java.util.Collection<cell> |
findEmptyCells()
|
board |
generateChildBoard()
|
long |
getBoardID()
|
java.lang.String |
getBoardScore()
|
long |
getFatherID()
|
java.lang.String |
getMinMax()
|
java.lang.String |
getPlayerName()
|
java.lang.String |
getValueInBoard(int cellNumber)
Restituisco il valore alla numero di cella |
java.lang.String |
getValueInBoard(int row,
int column)
Restituisco il valore alla riga row e alla colonna column |
boolean |
intToBoard(int iBoard)
|
boolean |
intToBoard(java.lang.String sBoard)
CONVERTO LA BOARD DA RAPRRESENTAZIONE INTERO A MATRICE |
boolean |
isBoardNet()
|
boolean |
isBoardPlayable()
|
boolean |
isBoardVincente()
|
boolean |
printBoardToScreen()
Stampo la BOARD corrente sullo schermo |
java.lang.String |
printBoardToString()
|
java.lang.String |
printDebug()
Ritono informazioni sulla board nel dettaglio BOARD_ID + FATHER_ID + R |
void |
setBoardID(long ID)
consente di specificareun valore ID da associare alla board corrente |
void |
setBoardID(java.lang.String ID)
Overload |
void |
setBoardScore(int BoardScore)
|
void |
setBoardScore(java.lang.String sBoardScore)
|
void |
setFatherID(long ID)
Imposta il valore nella board corrente il riferimento al valore ID relativo alla board padre, questo è utile in fase di DEBUG per ricostruire l'albero delle BOARD. |
void |
setFatherID(java.lang.String ID)
Overload |
void |
setMinMax(java.lang.String sMINMAX)
|
void |
setPlayerName(java.lang.String sPlayerName)
|
boolean |
setValueInBoard(int cellNumber,
char value)
Imposta alla riga row e alla colonna column il valore value esegue validazione relativa a riga colonne valore |
boolean |
setValueInBoard(int row,
int column,
char value)
|
void |
testBoardInsert()
|
int |
winPositionNotBlocked(char PLAYERMARK)
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public board()
public board(java.lang.String sBOARD_ID, java.lang.String sFATHER_ID, java.lang.String sBOARD, java.lang.String sPLAYER, java.lang.String sSCORE, java.lang.String sMINMAX)
Method Detail |
---|
public void setFatherID(long ID)
ID
- contiene il valore ID della bord padrepublic void setFatherID(java.lang.String ID)
ID
- ontiene il valore ID della bord padresetFatherID(long)
public void setBoardID(long ID)
ID
- contiene il valore ID della bordpublic void setBoardID(java.lang.String ID)
ID
- contiene il valore ID della bordsetFatherID(long)
public void setPlayerName(java.lang.String sPlayerName)
public void setBoardScore(int BoardScore)
public void setBoardScore(java.lang.String sBoardScore)
public void setMinMax(java.lang.String sMINMAX)
public long getFatherID()
public long getBoardID()
public java.lang.String getPlayerName()
public java.lang.String getBoardScore()
public java.lang.String getMinMax()
public board generateChildBoard()
public int boardToInt()
public boolean intToBoard(java.lang.String sBoard)
public boolean intToBoard(int iBoard)
public java.lang.Object boardToMatrix()
public java.lang.Object boardToMatrix(boolean removeE)
public java.lang.String printDebug()
public boolean setValueInBoard(int cellNumber, char value)
public boolean setValueInBoard(int row, int column, char value)
public java.lang.String getValueInBoard(int cellNumber)
public java.lang.String getValueInBoard(int row, int column)
public boolean printBoardToScreen()
public java.lang.String printBoardToString()
public java.util.Collection<cell> findEmptyCells()
public boolean isBoardVincente()
public boolean isBoardNet()
public boolean isBoardPlayable()
public int evaluateBoard(player cPlayer, player oPlayer)
public int winPositionNotBlocked(char PLAYERMARK)
public void testBoardInsert()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |