Correzione prova pratica del 9 luglio 2003
Correzione prova pratica del 9 luglio 2003
Istruzioni:
il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate:
- FIXME: segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO: segnala l'assenza di parti di codice
- XXX: segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per
renderlo compilabile e/o per la corretta indentazione.
//XXX (5) errore in struttura dati, codice di controllo scritto male
// Bellingeri Luca, 150241, DIS01
// 09/07/2003 - Esame di Fondamenti di Informatica, corso di laurea in Ingegneria informatica
// e-mail: bellingeri@libero.it
#include<iostream.h>
#include<fstream.h>
main(){
int i;
int j;
ifstream fin("tris.txt");
if(!fin){
cerr <<"Errore: il file non puo' essere aperto.\n";
exit(1);
}
int gioco [1] [8]; //FIXME a parte il fatto che come struttura dati e' bizzarra, lei ha sbagliato le dimensioni
while (fin) {
for (j=0; j<9; j++) {
for (i=0; i<2; i++)
fin >> gioco [i] [j]; //XXX perche memorizza le mosse e non la situazione ``scacchiera''??
}}
//FIXME e' comunque orribile
if ((gioco [0] [0] == gioco [0] [2])&&(gioco [0] [2] == gioco [0] [4])) cout << "partita vinta da X";
else if ((gioco [0] [1] == gioco [0] [3])&&(gioco [0] [3] == gioco [0] [5])) cout <<"partita vinta da O";
else if ((gioco [1] [0] == gioco [1] [2])&&(gioco [1] [2] == gioco [1] [4])) cout <<"partita vinta da X";
else if ((gioco [1] [1] == gioco [1] [3])&&(gioco [1] [3] == gioco [1] [5])) cout <<"partita vinta da O";
else if ((gioco [0] [2] == gioco [0] [4])&&(gioco [0] [4] == gioco [0] [6])) cout <<"partita vinta da X";
else if ((gioco [0] [3] == gioco [0] [5])&&(gioco [0] [5] == gioco [0] [7])) cout <<"partita vinta da O";
else if ((gioco [1] [2] == gioco [1] [4])&&(gioco [1] [4] == gioco [1] [6])) cout <<"partita vinta da X";
else if ((gioco [1] [3] == gioco [1] [5])&&(gioco [1] [5] == gioco [1] [7])) cout <<"partita vinta da O";
else if ((gioco [0] [4] == gioco [0] [6])&&(gioco [0] [6] == gioco [0] [8])) cout <<"partita vinta da X";
//qui non serve perch e'il numero massimo di turni e'9
else if ((gioco [1] [4] == gioco [1] [6])&&(gioco [1] [6] == gioco [1] [8])) cout <<"partita vinta da X";
//anche qui e in tutte le altre righe bianche
else if ((gioco [0] [0] == gioco [0] [2])&&(gioco [0] [2] == gioco [0] [6])) cout <<"partita vinta da X";
else if ((gioco [0] [1] == gioco [0] [3])&&(gioco [0] [3] == gioco [0] [7])) cout <<"partita vinta da O";
else if ((gioco [0] [0] == gioco [0] [2])&&(gioco [0] [2] == gioco [0] [8])) cout <<"partita vinta da X";
else if ((gioco [0] [0] == gioco [0] [4])&&(gioco [0] [4] == gioco [0] [6])) cout <<"partita vinta da X";
else if ((gioco [0] [1] == gioco [0] [4])&&(gioco [0] [5] == gioco [0] [7])) cout <<"partita vinta da O";
else if ((gioco [0] [0] == gioco [0] [4])&&(gioco [0] [4] == gioco [0] [8])) cout <<"partita vinta da X";
else if ((gioco [0] [0] == gioco [0] [6])&&(gioco [0] [6] == gioco [0] [8])) cout <<"partita vinta da X";
else if ((gioco [1] [0] == gioco [1] [2])&&(gioco [1] [2] == gioco [1] [6])) cout <<"partita vinta da X";
else if ((gioco [1] [1] == gioco [1] [3])&&(gioco [1] [3] == gioco [1] [7])) cout <<"partita vinta da O";
else if ((gioco [1] [0] == gioco [1] [2])&&(gioco [1] [2] == gioco [1] [8])) cout <<"partita vinta da X";
else if ((gioco [1] [0] == gioco [1] [4])&&(gioco [1] [4] == gioco [1] [6])) cout <<"partita vinta da X";
else if ((gioco [1] [1] == gioco [1] [5])&&(gioco [1] [5] == gioco [1] [7])) cout <<"partita vinta da O";
else if ((gioco [1] [0] == gioco [1] [4])&&(gioco [1] [4] == gioco [1] [8])) cout <<"partita vinta da X";
else if ((gioco [1] [0] == gioco [1] [6])&&(gioco [1] [6] == gioco [1] [8])) cout <<"partita vinta da X";
else if ((gioco [0] [2] == gioco [0] [4])&&(gioco [0] [4] == gioco [0] [8])) cout <<"partita vinta da X";
else if ((gioco [1] [2] == gioco [1] [4])&&(gioco [1] [4] == gioco [1] [8])) cout <<"partita vinta da X";
else cout <<"partita patta";
fin.close();
return 0;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT