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