scacchi.main
Class Comando

java.lang.Object
  |
  +--scacchi.main.Comando
Direct Known Subclasses:
ComandoScacchi, ComandoScacchi

public abstract class Comando
extends java.lang.Object

Classe per la memorizzazione e l'esecuzione dei comandi per il gioco degli scacchi.
La classe è astratta perchè i metodi nuovaPartita() e nuovaPartita(int, ArgomentiComando.ListaPosPezziTesto) sono astratti. In una classe concreta che estende questa class astratta i due metodi suddetti ritorneranno due nuove istanze della implementazione della classe Partita che si sta usando (ad esempio, chiamando i corrispondenti costruttori, come in ComandoScacchi).
Comandi validi
# chiede il numero della mossa
@ chiede quale giocatore ha il tratto
e mossa esegue mossa
l lista tutte le mosse della partita
l n lista le ultime n mosse della partita
i torna indietro di una semi-mossa
i n torna indietro di n semi-mosse
p posizione dei pezzi
c casa case controllate dal pezzo in casa
m mosse valide per il giocatore che ha il tratto
m casa mosse valide per il pezzo in
n ricomincia una nuova partita
n i lista-pos-pezzi ricomincia una nuova partita a partire dalla posizione fornita in lista-pos-pezzi, i indica il numero della mossa, se positivo il tratto è al BIANCO, se negativo è al NERO.

See Also:
ComandoScacchi

Nested Class Summary
(package private)  class Comando.ArgomentiTesto
          Classe per la memorizzazione e varifica delle stringhe degli argomenti di un comando.
 
Field Summary
private  Comando.ArgomentiTesto args
          Lista degli argomenti del comando.
private  char ch
          Comando da eseguire.
private static char[] COM_ARG_CASA
          Comandi per partita in corso che possono avere una casa come arg.
private static char[] COM_ARG_MOSSA
          Comandi per partita in corso che possono avere una mossa come arg.
private static char[] COM_ARG_NUM
          Comandi per partita in corso che possono avere un numero come arg.
static char COM_CASE_CONTR
          Comando case controllate
static char COM_ESEGUI_MOSSA
          Comando esegui mossa
static char COM_GIOC_MUOVE
          Comando giocatore che ha la mossa
static char COM_INDIETRO
          Comando indietro
static char COM_LISTA_MOSSE
          Comando lista mosse
static char COM_MOSSE_VALIDE
          Comando mosse valide
private static char[] COM_NO_ARG
          Comandi per partita in corso che possono avere zero argomenti
static char COM_NUM_MOSSA
          Comando numero mosse
static char COM_NUOVA_PARTITA
          Comando nuova partita
static char COM_POSIZIONE
          Comando lista posizione pezzi
 
Constructor Summary
protected Comando(java.lang.String s)
          Decompone e verifica una stringa con un comando.
 
Method Summary
(package private) static boolean charInArray(char ch, char[] v)
          Verifica se un carattere è contenuto in un array.
 Partita eseguiComandoNuovaPartita()
          Esegue un comando di nuova partita.
 java.lang.String eseguiComandoPartita(Partita partita)
          Esegue un comando su di una certa partita.
 boolean isComandoNuovaPartita()
          Verifica se si tratta di un comando che inizia una nuova partita.
abstract  Partita nuovaPartita()
          Crea una nuova partita che parte dalla posizione iniziale del gioco.
abstract  Partita nuovaPartita(int n, ArgomentiComando.ListaPosPezziTesto l)
          Crea una nuova partita che parte dalla posizione passata negli argomenti.
(package private) static int posCharInArray(char ch, char[] v)
          Cerca la prima posizione di un carattere in un array.
 java.lang.String toString()
          Ricostruisce la stringa del comando.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

COM_NUM_MOSSA

public static final char COM_NUM_MOSSA
Comando numero mosse

See Also:
Constant Field Values

COM_GIOC_MUOVE

public static final char COM_GIOC_MUOVE
Comando giocatore che ha la mossa

See Also:
Constant Field Values

COM_ESEGUI_MOSSA

public static final char COM_ESEGUI_MOSSA
Comando esegui mossa

See Also:
Constant Field Values

COM_LISTA_MOSSE

public static final char COM_LISTA_MOSSE
Comando lista mosse

See Also:
Constant Field Values

COM_INDIETRO

public static final char COM_INDIETRO
Comando indietro

See Also:
Constant Field Values

COM_POSIZIONE

public static final char COM_POSIZIONE
Comando lista posizione pezzi

See Also:
Constant Field Values

COM_CASE_CONTR

public static final char COM_CASE_CONTR
Comando case controllate

See Also:
Constant Field Values

COM_MOSSE_VALIDE

public static final char COM_MOSSE_VALIDE
Comando mosse valide

See Also:
Constant Field Values

COM_NO_ARG

private static final char[] COM_NO_ARG
Comandi per partita in corso che possono avere zero argomenti


COM_ARG_NUM

private static final char[] COM_ARG_NUM
Comandi per partita in corso che possono avere un numero come arg.


COM_ARG_CASA

private static final char[] COM_ARG_CASA
Comandi per partita in corso che possono avere una casa come arg.


COM_ARG_MOSSA

private static final char[] COM_ARG_MOSSA
Comandi per partita in corso che possono avere una mossa come arg.


COM_NUOVA_PARTITA

public static final char COM_NUOVA_PARTITA
Comando nuova partita

See Also:
Constant Field Values

ch

private final char ch
Comando da eseguire.


args

private final Comando.ArgomentiTesto args
Lista degli argomenti del comando.

Constructor Detail

Comando

protected Comando(java.lang.String s)
           throws EccezioniTesto.NotazioneException
Decompone e verifica una stringa con un comando.

Parameters:
s - La stringa del comando: la stringa deve iniziare con il carattere del comando (eventuali spazi prima del comando deve essere eliminati prima di chiamare la funzione).
Method Detail

posCharInArray

static int posCharInArray(char ch,
                          char[] v)
Cerca la prima posizione di un carattere in un array.

Parameters:
ch - Il carattere da cercare.
v - L'array in cui cercare.
Returns:
La prima posizione in cui si trova il carattere o -1 se il carattere non appare nell'array.

charInArray

static boolean charInArray(char ch,
                           char[] v)
Verifica se un carattere è contenuto in un array.

Parameters:
ch - Il carattere da cercare.
v - L'array in cui cercare.
Returns:
true se il carattere appare nella stringa, false altrimenti.

nuovaPartita

public abstract Partita nuovaPartita()
Crea una nuova partita che parte dalla posizione iniziale del gioco.

Returns:
Una nuova istanza di una classe che implementa Partita.

nuovaPartita

public abstract Partita nuovaPartita(int n,
                                     ArgomentiComando.ListaPosPezziTesto l)
                              throws EccezioniPartita.PosizioneInizialeException
Crea una nuova partita che parte dalla posizione passata negli argomenti.

Parameters:
n - La mossa da cui parte la partita. Un valore positivo indica che il tratto è al BIANCO, un valore negativo che il tratto è al NERO.
l - La posizione dei pezzi da cui comincia la partita.
Returns:
Una nuova istanza di una classe che implementa Partita.
Throws:
scacchi.amin.EccezioniPartita.PosizioneInizialeException - Se la posizione iniziale non è valida.
EccezioniPartita.PosizioneInizialeException

isComandoNuovaPartita

public boolean isComandoNuovaPartita()
Verifica se si tratta di un comando che inizia una nuova partita.

Returns:
true se il comando inizia una nuova partita, false altrimenti.

eseguiComandoNuovaPartita

public Partita eseguiComandoNuovaPartita()
                                  throws EccezioniPartita.PosizioneInizialeException
Esegue un comando di nuova partita.

Returns:
Una nuova partita.
Throws:
Partita.PartitaException - segnala un eventuale errore nell'esecuzione del comando.
EccezioniPartita.PosizioneInizialeException

eseguiComandoPartita

public java.lang.String eseguiComandoPartita(Partita partita)
                                      throws EccezioniTesto.NotazioneException,
                                             EccezioniPartita.PartitaException
Esegue un comando su di una certa partita.

Parameters:
partita - Il comando da eseguire.
Returns:
L'output del comando.
Throws:
Partita.PartitaException - segnala un eventuale errore nell'esecuzione del comando.
EccezioniTesto.NotazioneException
EccezioniPartita.PartitaException

toString

public java.lang.String toString()
Ricostruisce la stringa del comando.

Overrides:
toString in class java.lang.Object