LABORATORIO DI CALCOLO II

prova pratica di esame sessione estiva 2006/2007
27/6/07

sul computer indicato dal docente, con l'account indicato dal docente, creare una cartella denominata Esame_Cognome.
Tutti i files relativi alla prova dovranno essere lasciati all'interno di tale cartella.

La prova consiste nello scrivere un programma per giocare a battaglia navale.
Gli studenti del corso AA 2006/07 dovranno svolgere la prova in linguaggio C, gli studenti dei precedenti corsi di Laboratorio di Calcolo II dovranno utilizzare il C++.

Inizializzazione:
Data una griglia di battaglia navale di dimensioni NxM con N e M fissati a
priori (si consiglia di usare una matrice)
usare la classe RandGen (per l'esame di C++) o la funzione rand (esame di C)
per generare un numero Num di coppie di coordinate
(X tra 1 e N e Y tra 1 e M) corrispondenti alle navi (scrivendo per esempio 1
invece di 0 nel corrispondente elemento della matrice)
                                                                               
Partita:
leggere da tastiera le coordinate del punto da colpire
controllare se c'e' o meno una nave in quella posizione
rispondere di conseguenza (segnando con un 2 la casella corrispondente
ad una nave affondata e tenendo il conto di quante navi sono rimaste)
la partita termina quando finiscono le navi indicando quanti tentativi sono
stati necessari.

Implementazione:
                                                                               
esame di C++
                                                                               
possibilmente realizzare una classe per gestire la matrice, avente
come membri privati la matrice stessa e il numero di navi presenti,
e come metodi
- un costruttore che popoli la matrice usando RandGen
- un metodo pubblico che data una coppia di coordinate fornisca la risposta
e che (evetualmente invocando un metodo privato)
aggiorni la matrice e del contatore di navi
- un metodo pubblico che restituisca il numero di navi residue

esame di C
 
utilizzare delle funzioni per
- inizializzare la matrice
- controllare date le coordinate se sia stata colpita una nave e rispondere di
conseguenza e per segnare le navi colpite
le funzioni dovranno avere tra i parametri un puntatore alla matrice e le dimensioni della matrice stessa.

                                                                              
Classe RandGen (per l'esame in C++): RandGen.cc RandGen.h