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 (6) legge e memorizza solo mosse, controllo scritto male
//Melli Filippo, 150585, pippo-tato@libero.it, dis13
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>
int main(){
int i,n,contc=-1,contr=-1,righe[10],colonne[10]; //FIXME bastava 9
ifstream fin("tris.txt");
if (!fin)
{cerr<<"Errore: file input non puo' venire aperto.\n";
exit(1);
}
for (i=0;fin>>n;i++)
if (i%2)
{++contc;
colonne[contc]=n;}
else
{++contr;
righe[contr]=n;
}
fin.close(); //FIXME lei memorizza le mosse, ma sarebbe stato piu' sensato memorizzare la situazione "scacchiera"
//FIXME francamente orribile
int contr0=0,contr1=0,contr2=0,contc0=0,contc1=0,contc2=0,cont=0;
contc=0;
for (i=0;i<=contr;i+=2)
{if (righe[i]==0)
++contr0;
if (righe[i]==1)
++contr1;
if (righe[i]==2)
++contr2;
if (colonne[i]==0)
++contc0;
if (colonne[i]==1)
++contc1;
if (colonne[i]==2)
++contc2;
if (righe[i]==0&&colonne[i]==0)
++contc;
if (righe[i]==1&&colonne[i]==1)
{++contc;
++cont;}
if (righe[i]==2&&colonne[i]==2)
++contc;
if (righe[i]==2&&colonne[i]==0)
++cont;
if (righe[i]==0&&colonne[i]==2)
++cont;}
if (contr0==3||contr1==3||contr2==3||contc0==3||contc1==3||contc2==3)
cout<<"Partita vinta da X.\n";
else
if (contc==3||cont==3)
cout<<"Partita vinta da X.\n";
else
{contc=contr0=contr1=contr2=contc0=contc1=contc2=cont=0;
for (i=1;i<=contr;i+=2)
{if (righe[i]==0)
++contr0;
if (righe[i]==1)
++contr1;
if (righe[i]==2)
++contr2;
if (colonne[i]==0)
++contc0;
if (colonne[i]==1)
++contc1;
if (colonne[i]==2)
++contc2;
if (righe[i]==0&&colonne[i]==0)
++contc;
if (righe[i]==1&&colonne[i]==1)
{++contc;
++cont;}
if (righe[i]==2&&colonne[i]==2)
++contc;
if (righe[i]==2&&colonne[i]==0)
++cont;
if (righe[i]==0&&colonne[i]==2)
++cont;}
if (contr0==3||contr1==3||contr2==3||contc0==3||contc1==3||contc2==3)
cout<<"Partita vinta da O.\n";
else
if (contc==3||cont==3)
cout<<"Partita vinta da O.\n";
else
cout<<"Partita patta.\n";}
return 0;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT