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 (0) non ha mai provato a compilarlo, gravi carenze di programmazione e problem solving
//<FOSSATI> <ALBERTO>,<132101>,<a.fossati1@inwind.it>,<STUD04>
//<09/07/03> ESAME DI FONDAMENTI DI INFORMATICA,CORSO DI LAUREA IN INGEGNERIA INFORMATICA
#include <iostream.h>
#include <fstream.h>
//FIXME si e' dimenticato il caps lock inserito?? Guardi che il C++ fa differenza tra maiuscole e minuscole
const int MAXTENT=5; //massimo numero di tentativi al fine di vincere
CONST INT FILENAME[]="TRIS.TXT"//file predefinito
void WINNER(int& TRISARRAY[][]); //La funzione che decreta il vincitore o
// un pareggio
STRUCT TRIS{
INT XCOORD;
INT YCOORD;
MAIN()
{
IFSTREAM FIN(FILENAME);
IF (!FIN) {
CERR <<"ERRORE : impossibile aprire il file "<<FILENAME<<ENDL;
EXIT(1);
}
WHILE (FIN.GETLINE(FILENAME,'\n'))//legge le prime due coordinate FIXME legge una riga e la mette in filename
{
fin>>XCOORD; //FIXME ad ogni ciclo salta una riga
fin>>YCOORD;
FIN.IGNORE();//salta il newline //FIXME il >> ci pensa gia' per conto suo a saltarlo
}
TRIS TRISARRAY[2][2];//dichiaro l'array trisarray.Il primo elemento(indice0)memorizza FIXME a tris si gioca su un riguadro 3x3
//le coordinate x della prima mossa(giocatore x).Il secondo elemento
//memorizza le coordinate y
TRISARRAY.X[0][0]=XCOORD;
TRISARRAY.Y[0][1]=YCOORD;//la coordinata della prima mossa //FIXME magari dentro il ciclo era meglio
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
fin>>TRISARRAY[i][j];
IF(J%2){ //differenzio le mosse:mosse dispari giocatore x mosse pari giocatore o
cout<< " X TRISARRAY[i][j] ="<<TRISARRAY[i][j]<<endl;
WINNER(TRISARRAY);}
else
{ cout<<" Y TRISARRAY[i][j] ="<<TRISARRAY[i][j]<<endl;
WINNER(TRISARRAY);}
FIN.CLOSE();//CHIUDE
}
void WINNER(int& TRISARRAY[][])
{
int first=i;
int primo=j;
for(int i=0;i<4;i++){
if(first == first)cout<<"Hai vinto!";//vince con un tris verticale //FIXME questa condizione difficilmente sara' falsa
else(first==primo)cout<<"Complimenti haio vinto!"//tris in obliquo
if(primo==primo)cout<<"Hai vinto!";//vince con un tris orizzontale
else else(first==primo)cout<<"Complimenti haio vinto!"//tris in obliquo
}
cout<<"PARTITA PATTA!";
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT