#include #include #include #define EXIT_SUCCESS 0 #define EXIT_WRONGCOMMANDLINE 1 #define EXIT_OPENFILE 2 #define EXIT_WRONGINPUTFORMAT 3 #define EXIT_MEMORY 4 #define LATO 8 typedef char Scacchiera[LATO][LATO]; typedef char Istruzione[3]; #define TRUE 1 #define FALSE 0 void ReadInstructions (int argc, char *argv[], char *InputFile); void LoadData (char *InputFile, Scacchiera S, char *pGiocatore, int *pNumIstruzioni, Istruzione** pI); void Othello (Scacchiera S, char *pGiocatore, int NumIstruzioni, Istruzione *I); void SaveBoard (Scacchiera S); int main(int argc, char *argv[]) { char InputFile[256]; Scacchiera S; char Giocatore; Istruzione *I; int NumIstruzioni; // 1) Interpretazione della linea di comando ReadInstructions(argc,argv,InputFile); // 2) Caricamento dei dati LoadData(InputFile,S,&Giocatore,&NumIstruzioni,&I); // 3) Algoritmo: // Esegue le istruzioni di ListaIstruzioni sulla configurazione iniziale Scacchiera Othello(S,&Giocatore,NumIstruzioni,I); // 4) Salvataggio dei risultati SaveBoard(S); // 5) Deallocazione delle strutture dati free(I); return EXIT_SUCCESS; } void ReadInstructions (int argc, char *argv[], char *InputFile) { if (argc != 2) { printf("Command line format wrong!\n"); exit(EXIT_WRONGCOMMANDLINE); } strcpy(InputFile,argv[1]); } void LoadData (char *InputFile, Scacchiera S, char *pGiocatore, int *pNumIstruzioni, Istruzione** pI) { FILE *fInputFile; int i; fInputFile = fopen(InputFile,"r"); if (fInputFile == NULL) { printf("File %s does not exist!\n",InputFile); exit(EXIT_OPENFILE); } for (i = 0; i < LATO; i++) fscanf(fInputFile,"%s",S[i]); fscanf(fInputFile,"\n%c",pGiocatore); fscanf(fInputFile,"%d",pNumIstruzioni); *pI = (Istruzione *) calloc(*pNumIstruzioni,sizeof(Istruzione)); if (*pI == NULL) { printf("Memoria insufficiente per allocare un vettore di %d istruzioni!\n",*pNumIstruzioni); exit(EXIT_MEMORY); } for (i = 0; i < *pNumIstruzioni; i++) fscanf(fInputFile,"%s",(*pI)[i]); fclose(fInputFile); } void Othello (Scacchiera S, char *pGiocatore, int NumIstruzioni, Istruzione *I) { } void SaveBoard (Scacchiera S) { int i, j; for (i = 0; i < LATO; i++) { for (j = 0; j < LATO; j++) printf("%c",S[i][j]); printf("\n"); } }