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: 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