Free University of Bolzano/Bozen
Faculty of Computer Science - Bachelor in Applied Computer Science
Introduction to Programming - A.A. 2005/2006

Esercitazione 8

Ereditarietà Matrici

Esercizio 8A (Ereditarietà)

Realizzare una classe Animale di cui interessa memorizzare il nome.
Le operazioni di interesse sono:

Particolari tipi di animali sono il cane, il gatto e il pappagallo. Per ciascuno di essi, realizzare un'opportuna classe Java avente un costruttore (che crea un oggetto opportuno con il nome associato ) e il metodo emettiVerso che stampa il verso opportuno. La classe associata al pappagallo ha in più un metodo ripeti che stampa la stringa passata come parametro, ripetuta due volte.

Infine, si realizzino due classi associate alle razze di cane Chiwawa e Rottweiler, aventi un costruttore e il metodo emettiVerso che stampa, rispettivamente, "bau!" e "BAU".

Soluzione


Esercizio 8B (Matrici)

Si vuole realizzare una variante del gioco Battaglia Navale. Battaglia Navale si gioca su di una matrice di 10x10 celle. Nella nostra variante l'avversario è il computer, che non può mai sparare. Esso dispone una certa quantità di navi, che occupano le cella della matrice in modo casuale. Il giocatore tenta di distruggerle. Ad ogni turno il giocatore può sparare con due tipi di arma: il cannone ed il siluro. Se spara con il cannone sulla cella in posizione (riga,colonna), ha l'effetto di colpire la cella stessa, mentre se spara con il siluro da una posizione (riga,colonna) e con una certa direzione (che può assumere solo i valori -1,0 1), colpisce tutte le celle allineate lungo la direzione la cui colonna cc è maggiore o uguale a c, come mostrato in figura.

Campo


Parte 1

Realizzare una classe Cella, che rappresenta una cella del campo di gioco. Ciascuna cella è caratterizzata dalle seguenti informazioni:

La classe Cella deve essere provvista dei seguenti metodi:

Soluzione


Parte 2

Realizzare una classe BattagliaNavale, che contiene una matrice di 10x10 celle. La classe deve implementare i seguenti metodi:

Soluzione


Parte 3

Realizzare un cliente della classe BattagliaNavale che:

Soluzione