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