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 (5) codice di controllo sbagliato e anche scritto male, quasi giusta la lettura da file
// Zoppi Matteo, 149847, mattez@libero.it, Cad13

// 09/07/2003 - esame di fondamenti di informatica,corso di laurea in ingegneria informatica



#include <iostream.h>
#include <fstream.h>
int main()
{
ifstream fin("tris.txt");
int i,j,conta=0,somma=0;
//char a[2][2]={0}; //FIXME la matrice magari doveva essere 3x3

char a[3][3]={0}; 
while (fin>>i>>j){
  if (conta%2==0) a[i][j]='X';
  else a[i][j]='O';
conta++;  
  }
for (i=0;i<3;i++)
  {for (j=0;j<3;j++)
  cout<<a[i][j];
  cout<<endl;
  }   

//FIXME questo codice e' disgustoso e comunque si e' pure dimenticato le graffe

//      e di conseguenza non funziona

if (a[0][0]=='X' && a[1][0]=='X' && a[2][0]=='X') cout<<"vince x";exit(0);
if (a[0][0]=='X' && a[0][1]=='X' && a[0][2]=='X') cout<<"vince x";exit(0);
if (a[0][0]=='X' && a[1][1]=='X' && a[2][2]=='X') cout<<"vince x";exit(0);
if (a[1][0]=='X' && a[1][1]=='X' && a[1][2]=='X') cout<<"vince x";exit(0);
if (a[2][0]=='X' && a[2][1]=='X' && a[2][2]=='X') cout<<"vince x";exit(0);
if (a[0][1]=='X' && a[1][1]=='X' && a[2][1]=='X') cout<<"vince x";exit(0);
if (a[0][2]=='X' && a[1][2]=='X' && a[2][2]=='X') cout<<"vince x";exit(0);

//FIXME la seguente condizione e' sbagliata

if (a[0][2]=='X' && a[1][2]=='X' && a[2][0]=='X') cout<<"vince x";exit(0);

if (a[0][0]=='O' && a[1][0]=='O' && a[2][0]=='O') cout<<"vince o";exit(0);
if (a[0][0]=='O' && a[0][1]=='O' && a[0][2]=='O') cout<<"vince o";exit(0);
if (a[0][0]=='O' && a[1][1]=='O' && a[2][2]=='O') cout<<"vince o";exit(0);
if (a[1][0]=='O' && a[1][1]=='O' && a[1][2]=='O') cout<<"vince o";exit(0);
if (a[2][0]=='O' && a[2][1]=='O' && a[2][2]=='O') cout<<"vince o";exit(0);
if (a[0][1]=='O' && a[1][1]=='O' && a[2][1]=='O') cout<<"vince o";exit(0);
if (a[0][2]=='O' && a[1][2]=='O' && a[2][2]=='O') cout<<"vince o";exit(0);

//FIXME vedi sopra

if (a[0][2]=='O' && a[1][2]=='O' && a[2][0]=='O') cout<<"vince o";exit(0);

//FIXME e il caso di parita'???

}


Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a bertozzi@CE.UniPR.IT