Class Scacchiera

java.lang.Object
  extended by Scacchiera
Direct Known Subclasses:
Gioco

public class Scacchiera
extends java.lang.Object

Questa classe rappresenta la scacchiera come situazione a riposo, la sua sottoclasse Gioco definira' anche come si possono muovere i vari pezzi presenti sulla scacchiera.
La scacchiera ha 8x8 caselle alterate bianche e nere. Nelle sole caselle nere puo' essere presente un pezzo, che puo' essere una pedina o una dama, di colore bianco o nero.


Field Summary
static int BIANCO
          Codifica il colore bianco.
protected  int[][] contenutoCaselle
          Matrice bidimensionale di interi, viene dimensionata a 8x8 righe e colonne, ogni elemento della matrice memorizza un intero che codifica il pezzo contenuto nella casella corrispondente.
static int DAMA_BIANCA
          Codifica il contenuto di una casella con dama bianca.
static int DAMA_NERA
          Codifica il contenuto di una casella con dama nera.
static int DIM_LATO
          Numero di caselle (sia bianche che nere) su ciascun lato della scacchiera, vale 8.
static int NERO
          Codifica il colore nero.
static int NON_COLORE
          Codifica il colore inesistente (ritornato per esempio come il colore del pezzo presente in una casella vuota.
static int PEDINA_BIANCA
          Codifica il contenuto di una casella con pedina bianca.
static int PEDINA_NERA
          Codifica il contenuto di una casella con pedina nera.
static int VUOTA
          Codifica il contenuto di una casella vuota.
 
Constructor Summary
Scacchiera()
          Costruisce la scacchiera mettendola nello stato iniziale.
 
Method Summary
 boolean bordoOpposto(Casella c, int col)
          Controlla se una casella si trova sul bordo opposto a quello da sui e' partito il giocatore del colore dato.
 int colore(int pezzo)
          Ritorna il colore di un pezzo, dato il codice del pezzo.
 int contenuto(Casella cas)
          Ritorna il pezzo contenuto in una casella.
 int contenuto(int r, int c)
          Ritorna il pezzo contenuto in una casella, date riga e colonna.
 int declassataPedina(int pezzo)
          Ritorna il codice della pedina dello stesso colore del pezzo.
 boolean eDentro(Casella c)
          Controlla, se una casella e' dentro i limiti della scacchiera.
 boolean eDentro(int riga, int colonna)
          Controlla, date riga e colonna, se una casella e' dentro i limiti della scacchiera.
 boolean eNera(Casella casella)
          Controlla, se una casella e' nera.
 boolean eNera(int riga, int colonna)
          Controlla, date riga e colonna, se una casella e' nera.
 boolean ePedina(int pezzo)
          Controlla se il pezzo dato e' una pedina.
 boolean metti(Casella cas, int pezzo)
          Mette il pezzo assegnato nella casella data.
 boolean metti(int r, int c, int pezzo)
          Mette il pezzo assegnato nella casella di riga e colonna date.
 int promossaDama(int pezzo)
          Ritorna il codice della dama dello stesso colore del pezzo.
 void stampaScacchiera(java.lang.String titolo)
          Funzione utile per debug, stampa la tastiera in formato testo, preceduta da un titolo.
I vari pezzi sono rappresentati dai seguenti casatteri: b=pedina bianca, n=pedina nera, B=dama bianca, N=dama nera.
 void statoIniziale()
          Mette la scacchiera nello stato iniziale: le 12 pedine del giocatore nero stanno sulle caselle nere delle prime tre righe (cioe' quelle in alto), le 12 pedine del giocatore bianco stanno sulle caselle nere delle ultime tre righe (cioe' quelle in basso).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DIM_LATO

public static final int DIM_LATO
Numero di caselle (sia bianche che nere) su ciascun lato della scacchiera, vale 8.

See Also:
Constant Field Values

VUOTA

public static final int VUOTA
Codifica il contenuto di una casella vuota.

See Also:
Constant Field Values

PEDINA_BIANCA

public static final int PEDINA_BIANCA
Codifica il contenuto di una casella con pedina bianca.

See Also:
Constant Field Values

PEDINA_NERA

public static final int PEDINA_NERA
Codifica il contenuto di una casella con pedina nera.

See Also:
Constant Field Values

DAMA_BIANCA

public static final int DAMA_BIANCA
Codifica il contenuto di una casella con dama bianca.

See Also:
Constant Field Values

DAMA_NERA

public static final int DAMA_NERA
Codifica il contenuto di una casella con dama nera.

See Also:
Constant Field Values

NON_COLORE

public static final int NON_COLORE
Codifica il colore inesistente (ritornato per esempio come il colore del pezzo presente in una casella vuota.

See Also:
Constant Field Values

BIANCO

public static final int BIANCO
Codifica il colore bianco.

See Also:
Constant Field Values

NERO

public static final int NERO
Codifica il colore nero.

See Also:
Constant Field Values

contenutoCaselle

protected int[][] contenutoCaselle
Matrice bidimensionale di interi, viene dimensionata a 8x8 righe e colonne, ogni elemento della matrice memorizza un intero che codifica il pezzo contenuto nella casella corrispondente.

Constructor Detail

Scacchiera

public Scacchiera()
Costruisce la scacchiera mettendola nello stato iniziale.

Method Detail

eNera

public boolean eNera(int riga,
                     int colonna)
Controlla, date riga e colonna, se una casella e' nera.


eNera

public boolean eNera(Casella casella)
Controlla, se una casella e' nera.


statoIniziale

public void statoIniziale()
Mette la scacchiera nello stato iniziale: le 12 pedine del giocatore nero stanno sulle caselle nere delle prime tre righe (cioe' quelle in alto), le 12 pedine del giocatore bianco stanno sulle caselle nere delle ultime tre righe (cioe' quelle in basso).


colore

public int colore(int pezzo)
Ritorna il colore di un pezzo, dato il codice del pezzo.


ePedina

public boolean ePedina(int pezzo)
Controlla se il pezzo dato e' una pedina.


contenuto

public int contenuto(int r,
                     int c)
Ritorna il pezzo contenuto in una casella, date riga e colonna.

Parameters:
r - la riga, deve essere tra 0 e DIM_LATO cioe' 8
c - la colonna, deve essere tra 0 e DIM_LATO cioe' 8

contenuto

public int contenuto(Casella cas)
Ritorna il pezzo contenuto in una casella.

Parameters:
cas - la casella, che deve avere riga e colonna comprese tra 0 e DIM_LATO cioe' 8

metti

public boolean metti(int r,
                     int c,
                     int pezzo)
Mette il pezzo assegnato nella casella di riga e colonna date. Ritorna true se e' stato possibile metterlo, false altrimenti.

Parameters:
r - la riga, deve essere tra 0 e DIM_LATO cioe' 8
c - la colonna, deve essere tra 0 e DIM_LATO cioe' 8
pezzo - il codice del pezzo che deve essere uno fra: VUOTA, PEDINA_BIANCA, PEDINA_NERA, DAMA_BIANCA, DAMA_NERA

metti

public boolean metti(Casella cas,
                     int pezzo)
Mette il pezzo assegnato nella casella data. Ritorna true se e' stato possibile metterlo, false altrimenti.

Parameters:
cas - la casella, che deve avere riga e colonna compresze tra 0 e DIM_LATO cioe' 8
pezzo - il codice del pezzo che deve essere uno fra: VUOTA, PEDINA_BIANCA, PEDINA_NERA, DAMA_BIANCA, DAMA_NERA

eDentro

public boolean eDentro(int riga,
                       int colonna)
Controlla, date riga e colonna, se una casella e' dentro i limiti della scacchiera.


eDentro

public boolean eDentro(Casella c)
Controlla, se una casella e' dentro i limiti della scacchiera.


bordoOpposto

public boolean bordoOpposto(Casella c,
                            int col)
Controlla se una casella si trova sul bordo opposto a quello da sui e' partito il giocatore del colore dato.


promossaDama

public int promossaDama(int pezzo)
Ritorna il codice della dama dello stesso colore del pezzo. Se il pezzo non esiste (codifica la casella vuota) lo ritorna.


declassataPedina

public int declassataPedina(int pezzo)
Ritorna il codice della pedina dello stesso colore del pezzo. Se il pezzo non esiste (codifica la casella vuota) lo ritorna.


stampaScacchiera

public void stampaScacchiera(java.lang.String titolo)
Funzione utile per debug, stampa la tastiera in formato testo, preceduta da un titolo.
I vari pezzi sono rappresentati dai seguenti casatteri: b=pedina bianca, n=pedina nera, B=dama bianca, N=dama nera.

Parameters:
titolo - la stringa da scrivere come titolo