lunedì 6 ottobre 2008

Ottima implementazione dello studente Tommaso

Prima implementazione del gioco del filetto

#include <stdio.h>

int board[10];

char simboli[3]={' ','X','O'};

int c;

void azzeraBoard();

void stampaBoard();

void mossaUmano();

void mossaComputer();

int vincitore();

int main() {

        int i;

        int finito=0;

        int conta=0;

        azzeraBoard();

        stampaBoard();

        c=0;

        while (conta<9){

            printf("conta=%d",conta);

            mossaUmano();

            conta++;

            stampaBoard();

            finito=vincitore();

            if (finito==1)

             break;

            mossaComputer();

            conta++;

            stampaBoard();

            finito=vincitore();

            if (finito==1)

                break;

        }

        if (c==0)

            printf("il gioco è patto");

        

}

void azzeraBoard() {

        int i;

        for (i=1;i<10;i++) {

            board[i]=0;

        }

}

void stampaBoard(){

        int i;

        for (i=1;i<10;i++) {

            if (i==1)

                printf("\n___________________\n");

            if ( (i==3)||(i==6)){

                printf("%c", simboli[board[i]]);

                printf("\n");

                printf("--------\n");

                } else

            printf("%c |", simboli[board[i]]);

        }

}


 

void mossaUmano(){

    int numero;

    int mossaGiusta=0;

    while (mossaGiusta==0){

     printf("\nfai la tua mossa, dammi il numero della casella");

     scanf("%d",&numero);

     if ((numero<1) || (numero>9) || (board[numero]>0)) {

         mossaGiusta=0;

     }

     else {

     mossaGiusta=1;

     }

    }

    board[numero]=1;

}

void mossaComputer(){

    int i;

    for (i=1; i<10; i++){

        if (board[i]==0) {

            board[i]=2;

            i=10;

        }

    }        

}

int vincitore(){

    int v=0;

    

    if ((board[1]==board[2])&& (board[2]==board[3])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[4]==board[5])&& (board[5]==board[6])&& (board[4]>0)){

        v=1;

        c=board[4];

    }

    if ((board[7]==board[8])&& (board[8]==board[9])&& (board[7]>0)){

        v=1;

        c=board[7];

    }

    if ((board[1]==board[4])&& (board[4]==board[7])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[2]==board[5])&& (board[5]==board[8])&& (board[2]>0)){

        v=1;

        c=board[2];

    }

    if ((board[3]==board[6])&& (board[6]==board[9])&& (board[3]>0)){

        v=1;

        c=board[3];

    }

    if ((board[1]==board[5])&& (board[5]==board[9])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[3]==board[5])&& (board[5]==board[7])&& (board[3]>0)){

        v=1;

        c=board[3];

    }

    printf("v=%d",v);

    if (v==1) {

        if (c==1)

            printf("ha vinto l'umano");

        if (c==2)

            printf("ha vinto il computer");

    }

    

    return v;

}


 

    
 

        

    

azzeramento dell'array della board

struttura dati per memorizzare la board del filetto