Interfaccia Comandi
La classe Comando
L'interfaccia comandi del progetto si basa su di una classe
Comando.java
che memorizza un comando (si veda anche la
documentazione della classe
) e fornisce il metodo che esegue il comando richiamando l'opportuno metodo di Partita. Questa classe, basandosi su Partita è astratta, dato che per iniziare una nuova partita chiama il metodo astratto
nuovaPartita
(o la versione che riceve il numero di mossa e la lista delle posizioni dei pezzi come argomenti). Questi pezzi possono essere concretamente implementati solo una volta specificata la classe che implementa l'interface Partita.
La classe ComandoScacchi
La classe
ComandoScacchi.java
è la classe concreta che implementa Comando per il caso di PartitaScacchi (si veda anche la
documentazione della classe
). I due metodi astratti sono semplicemente implementati da una chiamata al corrispondente costruttore di PartitaScacchi.
La classe InterfacciaComandi
La classe
InterfacciaComandi.java
è la classe che implementa la lettura dei comandi da uno stream di input e la loro esecuzione (si veda anche la
documentazione della classe
). Il costruttore di questa classe crea una nuova interfaccia associato ad un input stream di caratteri (una sottoclasse di
Reader
). In particolare, il costruttore senza argomenti associa l'interfaccia allo standard input.
Il metodo
nextComando
legge un comando seguito da ';' dallo stream di input, lo esegue e lascia il risultato dell'esecuzione in alcuni campi privati della classe accessibili mediante i metodi:
- cmd()
che ritorna la stringa del comando letto
- out()
che ritorna, sotto forma di stringa, l'output del comando eseguito (in caso di esecuzione senza problemi del comando)
- errore()
che segnala se il comando ha portato ad un errore (sintattico o di esecuzione)
- msg()
la stringa con il messaggio di errore nel caso in cui il comando abbia causato un errore
Questa classe, basandosi sulla classe astratta Comando è a sua volta astratta. Infatti il metodo
nuovoComando
per la creazione di un comando ` astratto.
La classe InterfacciaComandiScacchi
La classe
InterfacciaComandiScacchi.java
è una sottoclasse concreta di InterfacciaComandi per la lettura di comandi per PartitaScacchi (si veda anche la
documentazione della classe
). Il metodo nuovoComando è impementato per mezzo di una chiamata al costruttore di ComandoScacchi.