PRIMA PARTE DEL PROGETTO
Il progetto consiste nello sviluppare un programma che
permetta ad un utente di giocare al gioco del:
MEMORY
dare la possibilità di selezionare il livello di gioco con
numero di carte per riga minimo: 2, massimo: 6;
numero di carte per colonna minimo: 2, massimo 10
L'interfaccia grafica deve essere schematica (a caratteri),
ma sviluppata in modo da rendere chiaro lo stato di avanzamento
del gioco.
Sviluppare l'interfaccia grafica schematica.
All'avvio del programma deve essere richiesto
il nome dell'utente che inizia a giocare.
Predisporre una sezione chiamata help, richiamabile
in qualsiasi momento all'interno dell'applicazione, che
permetta agli utenti di conoscere le regole del gioco e le
modalità di utilizzo del programma, oltre una descrizione di
tutte le funzionalità disponibili.
SECONDA PARTE DEL PROGETTO
La seconda parte del progetto consiste in una evoluzione del
progetto che avete svolto per la prima parte. In particolare
le modifiche comprendono: lo sviluppo di nuove funzionalità e
la reingegnerizzazione del codice.
Nuove funzionalità da implementare:
Inserire tutti i controli e relativi messaggi di
errore nel caso di qualsiasi inserimento errato da
parte dell'utente
Una volta terminata la partita dare la possibilità
di giocarne un'altra senza uscire dal programma
Dare la possibilità di terminare una partita in qualsiasi
momento e ovviamente di poterne iniziare una nuova
Per ogni mossa fatta tenere traccia del tempo impiegato per
eseguirla (UTILIZZARE UNA LISTA DINAMICA)
Stampare l'elenco delle mosse fatte a fine partita
Modifiche al codice:
Utilizzo di funzioni per migliorare il codice ed evitare
inutili ripetizioni di porzioni di codice
I commenti devono seguire le seguenti specifiche:
Ogni funzione deve avere un commento prima dell'intestazione
che specifichi nell'ordine:
1.nome della funzione,
2.breve descrizione delle funzionalità,
3.elenco dei parametri in ingresso con relativo significato,
4.descrizione dell'eventuale parametro restituito.
Ad esempio:
/*
* calcolaMediaValoriArray()
* funzione che calcola la media dei valori presenti all'interno
* di un array passato come argomento alla funzione.
*
* Parametri in ingresso:
* array: vettore dei valori dei quali deve essere calcolata la media
* dim: numero di celle presenti all'interno del vettore
*
* Valore restituito:
* un float che indica la media dei valori inseriti
*/
float calcolaMediaValoriArray(int array[], int dim)
{
...
}
Inoltre per ogni variabile o costante dichiarata deve esistere un commento
che ne descriva il ruolo all'interno del programma o della funzione; e devono
essere presenti commenti all'interno del codice che descrivano le
parti più salienti.
N.B. I COMMENTI DEVONO ESSERE INSERITI COME DESCRITTO NEI PUNTI PRECEDENTI,
LA MANCANZA DI TALE SPECIFICHE COMPORTA L'ANNULLAMENTO DELLA CONSEGNA!
TERZA PARTE DEL PROGETTO
La terza parte del progetto consiste in una evoluzione del
progetto che avete svolto per la seconda parte. In particolare
le modifiche comprendono: lo sviluppo di nuove funzionalità
e la reingegnerizzazione del codice.
(N.B. RIMANE SEMPRE VALIDA LA RICHIESTA DI COMMENTI COME
DESCRITTO NELLE SPECIFICHE DEL SECONDO PROGETTO)
Nuove funzionalità:
Memorizzazione delle mosse fatte con possibilità di
annullare una o più mosse per ripartire da un certo
punto della partita (LA GESTIONE DEVE ESSERE FATTA CON
UNA PILA DINAMICA)
la prima mossa fatta non potrà essere annullata
Possibilità di visualizzare l'elenco le mosse fatte a
fine partita e in QUALSIASI punto della partita da parte
di ogni utente
Modifiche al codice:
le funzioni non devono essere più lunghe di 25-30 righe di codice
Non devono esistere variabili globali (costanti se necessarie
ovviamente possono esistere)
i nomi delle variabili e delle funzioni devono essere "parlanti"
ovvero leggendo il nome si deve già intuire il significato, quindi eccetto
per i contatoti utilizzati in cicli, NON possono esistere variabili con nomi
formati da una sola lettera o da abbreviazioni
QUARTA PARTE DEL PROGETTO
La quarta parte del progetto consiste in una evoluzione
del progetto che avete svolto per la terza parte.
In particolare le modifiche comprendono: lo sviluppo di
nuove funzionalità e la reingegnerizzazione del codice.
(N.B. RIMANE SEMPRE VALIDA LA RICHIESTA DI COMMENTI COME
DESCRITTO NELLE SPECIFICHE DEL SECONDO PROGETTO)
tramite l'utilizzo di un ALBERO CON LISTE DEI NODI,
tenere traccia di tutte le mosse fatte, anche quelle
annullate, e implementare la funzionalità che permetta
di sapere, dato un intero k, se esiste una sequenza di
k mosse a partire dalla prima che porta ad una mossa
annullata
Possibilità di salvare una partita su file in
qualsiasi momento e di poterla ricaricare in un secondo
momento per riprendere il gioco dal punto lasciato in
sospeso (bisogna mantenere anche i nomi dei giocatori),
non bisogna salvare le mosse fatte.
Il mio problema adesso prima di arrivare alle altre parti del progetto è di istanziare una matrice. Se vi allego il file del mio progetto c'è qualcuno che sarebbe in grado di aiutarmi per favore? Grazie Cordiali saluti.
PS. SE C'E' QUALCOSA CHE NON AVETE CAPITO DEL MIO PROGETTO CHIEDETIMI SU MSN!!!!!
![Grande applauso [applauso+]](http://www.megalab.it/forum/images/smilies/Bigclap.gif)
![Giusto [8D]](http://www.megalab.it/forum/images/smilies/punk.gif)