Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Tris in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87

    Tris in C

    Domani (venerdi 28/05/2004) devo consegnare l'algoritmo del tris in linguaggio C. Non riesco a capire perchè non funziona. Potete aiutarmi? Allego un ticstì col codice dato che non posso allegarlo come ticstì...

    #include<conio.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<graphics.h>
    #include<dos.h>
    #include<time.h>

    void presentazione(void);
    void menu(void);
    void gioca(void);
    void controlla(void);
    void istruzioni(void);
    void esci(void);

    int i,n;
    int iScelta;
    int campo[3][3];
    int spia;
    int iMossa,vittoria;

    void main(void)
    {
    //presentazione();
    menu();
    }

    void presentazione(void)
    {
    int scheda,modo;
    int x,y,x1,y1;

    clrscr();
    detectgraph(&scheda,&modo);
    //initgraph(&scheda,&modo,"c:\\bc31\\bgi");
    initgraph(&scheda,&modo,"c:\\borlandc\\bgi");

    x=450;
    y=100;
    x1=0;
    y1=300;
    for(i=0;i<200;i++)
    {
    cleardevice();
    settextstyle(3,0,5);
    setcolor(2);
    outtextxy(x,y,"TRIS!");
    delay(10);
    x--;
    settextstyle(3,0,3);
    setcolor(1);
    outtextxy(x1,y1,"Performed by Alessandro Damalio");
    delay(10);
    x1++;
    }
    getch();
    closegraph();
    }

    void menu(void)
    {
    do
    {
    clrscr();
    printf("Simulazione del tris\n");
    printf("\n\t1.Gioca");
    printf("\n\t2.Istruzioni");
    printf("\n\t0.Esci");
    printf("\n\nScegliere una delle opzioni da eseguire ==> ");
    scanf("%d",&iScelta);
    switch(iScelta)
    {
    case 1:gioca(); break;
    case 2:istruzioni(); break;
    case 0:esci(); break;
    }
    }
    while(iScelta<=3||iScelta>=0);
    }

    void gioca(void)
    {
    clrscr();
    gotoxy(2,2);printf("\t\t º º\n");
    gotoxy(2,3);printf("\t\t º º\n");
    gotoxy(2,4);printf("\t\t º º\n");
    gotoxy(2,5);printf("\t\t º º\n");
    gotoxy(2,6);printf("\t\t º º\n");
    gotoxy(2,7);printf("\t\t º º\n");
    gotoxy(2,8);printf("\t\tÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍ\ n");
    gotoxy(2,9);printf("\t\t º º\n");
    gotoxy(2,10);printf("\t\t º º\n");
    gotoxy(2,11);printf("\t\t º º\n");
    gotoxy(2,12);printf("\t\t º º\n");
    gotoxy(2,13);printf("\t\t º º\n");
    gotoxy(2,14);printf("\t\tÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍ \n");
    gotoxy(2,15);printf("\t\t º º\n");
    gotoxy(2,16);printf("\t\t º º\n");
    gotoxy(2,17);printf("\t\t º º\n");
    gotoxy(2,18);printf("\t\t º º\n");
    gotoxy(2,19);printf("\t\t º º\n");
    gotoxy(2,20);printf("\t\t º º\n");
    spia=random(1); // Inizio casuale
    do
    {
    if(spia==0)
    {
    spia=1;
    gotoxy(2,22);printf("Tocca a P1");
    gotoxy(2,23);printf("==> ");
    scanf("%d",&iMossa);
    }
    if(spia==1)
    {
    spia=0;
    gotoxy(2,22);printf("Tocca a P2");
    gotoxy(2,23);printf("==> ");
    scanf("%d",&iMossa);
    }
    if(iMossa==1&&spia==1)
    {
    if(campo[2][0]==1)
    {
    gotoxy(5,18);printf("X");
    spia=0;
    }
    if(campo[2][0]==2)
    {
    gotoxy(5,18);printf("O");
    spia=1;
    }
    campo[2][0]=1;
    gotoxy(5,18);printf("X");
    }
    if(iMossa==1&&spia==0)
    {
    if(campo[2][0]==1)
    {
    gotoxy(5,18);printf("X");
    spia=0;
    }
    if(campo[2][0]==2)
    {
    gotoxy(5,18);printf("O");
    spia=1;
    }
    campo[2][0]=2;
    gotoxy(5,18);printf("O");
    }
    if(iMossa==2&&spia==1)
    {
    if(campo[2][1]==1)
    {
    gotoxy(14,18);printf("X");
    spia=0;
    }
    if(campo[2][1]==2)
    {
    gotoxy(14,18);printf("O");
    spia=1;
    }
    campo[2][1]=1;
    gotoxy(14,18);printf("X");
    }
    if(iMossa==2&&spia==0)
    {
    if(campo[2][1]==1)
    {
    gotoxy(14,18);printf("X");
    spia=0;
    }
    if(campo[2][1]==2)
    {
    gotoxy(14,18);printf("O");
    spia=1;
    }
    campo[2][1]=2;
    gotoxy(14,18);printf("O");
    }
    if(iMossa==3&&spia==1)
    {
    if(campo[2][2]==1)
    {
    gotoxy(22,18);printf("X");
    spia=0;
    }
    if(campo[2][2]==2)
    {
    gotoxy(22,18);printf("O");
    spia=1;
    }
    campo[2][2]=1;
    gotoxy(22,18);printf("X");
    }
    if(iMossa==3&&spia==0)
    {
    if(campo[2][2]==1)
    {
    gotoxy(22,18);printf("X");
    spia=0;
    }
    if(campo[2][2]==2)
    {
    gotoxy(22,18);printf("O");
    spia=1;
    }
    campo[2][2]=2;
    gotoxy(22,18);printf("O");
    }
    if(iMossa==4&&spia==1)
    {
    if(campo[1][0]==1)
    {
    gotoxy(5,11);printf("X");
    spia=0;
    }
    if(campo[1][0]==2)
    {
    gotoxy(5,11);printf("O");
    spia=1;
    }
    campo[1][0]=1;
    gotoxy(5,11);printf("X");
    }
    if(iMossa==4&&spia==0)
    {
    if(campo[1][0]==1)
    {
    gotoxy(5,11);printf("X");
    spia=0;
    }
    if(campo[1][0]==2)
    {
    gotoxy(5,11);printf("O");
    spia=1;
    }
    campo[1][0]=2;
    gotoxy(5,11);printf("O");
    }
    if(iMossa==5&&spia==1)
    {
    if(campo[1][1]==1)
    {
    gotoxy(14,11);printf("X");
    spia=0;
    }
    if(campo[1][1]==2)
    {
    gotoxy(14,11);printf("O");
    spia=1;
    }
    campo[1][1]=1;
    gotoxy(14,11);printf("X");
    }
    if(iMossa==5&&spia==0)
    {
    if(campo[1][1]==1)
    {
    gotoxy(14,11);printf("X");
    spia=0;
    }
    if(campo[1][1]==2)
    {
    gotoxy(14,11);printf("O");
    spia=1;
    }
    campo[1][1]=2;
    gotoxy(14,11);printf("O");
    }
    if(iMossa==6&&spia==1)
    {
    if(campo[1][2]==1)
    {
    gotoxy(22,11);printf("X");
    spia=0;
    }
    if(campo[1][2]==2)
    {
    gotoxy(22,11);printf("O");
    spia=1;
    }
    campo[1][2]=1;
    gotoxy(22,11);printf("X");
    }
    if(iMossa==6&&spia==0)
    {
    if(campo[1][2]==1)
    {
    gotoxy(22,11);printf("X");
    spia=0;
    }
    if(campo[1][2]==2)
    {
    gotoxy(22,11);printf("O");
    spia=1;
    }
    campo[1][2]=2;
    gotoxy(22,11);printf("O");
    }
    if(iMossa==7&&spia==1)
    {
    if(campo[0][0]==1)
    {
    gotoxy(5,4);printf("X");
    spia=0;
    }
    if(campo[0][0]==2)
    {
    gotoxy(5,4);printf("O");
    spia=1;
    }
    campo[0][0]=1;
    gotoxy(5,4);printf("X");
    }
    if(iMossa==7&&spia==0)
    {
    if(campo[0][0]==1)
    {
    gotoxy(5,4);printf("X");
    spia=0;
    }
    if(campo[0][0]==2)
    {
    gotoxy(5,4);printf("O");
    spia=1;
    }
    campo[0][0]=2;
    gotoxy(5,4);printf("O");
    }
    if(iMossa==8&&spia==1)
    {
    if(campo[0][1]==1)
    {
    gotoxy(14,4);printf("X");
    spia=0;
    }
    if(campo[0][1]==2)
    {
    gotoxy(14,4);printf("O");
    spia=1;
    }
    campo[0][1]=1;
    gotoxy(14,4);printf("X");
    }
    if(iMossa==8&&spia==0)
    {
    if(campo[0][1]==1)
    {
    gotoxy(14,4);printf("X");
    spia=0;
    }
    if(campo[0][1]==2)
    {
    gotoxy(14,4);printf("O");
    spia=1;
    }
    campo[0][1]=2;
    gotoxy(14,4);printf("O");
    }
    if(iMossa==9&&spia==1)
    {
    if(campo[0][2]==1)
    {
    gotoxy(22,4);printf("X");
    spia=0;
    }
    if(campo[0][2]==2)
    {
    gotoxy(22,4);printf("O");
    spia=1;
    }
    campo[0][2]=1;
    gotoxy(22,4);printf("X");
    }
    if(iMossa==9&&spia==0)
    {
    if(campo[0][2]==1)
    {
    gotoxy(22,4);printf("X");
    spia=0;
    }
    if(campo[0][2]==2)
    {
    gotoxy(22,4);printf("O");
    spia=1;
    }
    campo[0][2]=2;
    gotoxy(22,4);printf("O");
    }
    }
    while(!vittoria);
    getch();
    }

    void controlla(void)
    {
    if(campo[0][0]==1&&campo[0][1]==1&&campo[0][2]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][0]==2&&campo[0][1]==2&&campo[0][2]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[1][0]==1&&campo[1][1]==1&&campo[1][2]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[1][0]==2&&campo[1][1]==2&&campo[1][2]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[2][0]==1&&campo[2][1]==1&&campo[2][2]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[2][0]==2&&campo[2][1]==2&&campo[2][2]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[0][0]==1&&campo[1][0]==1&&campo[2][0]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][0]==2&&campo[1][0]==2&&campo[2][0]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[0][1]==1&&campo[1][1]==1&&campo[2][1]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][1]==2&&campo[1][1]==2&&campo[2][1]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[0][2]==1&&campo[1][2]==1&&campo[2][2]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][2]==2&&campo[1][2]==2&&campo[2][2]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[0][0]==1&&campo[1][1]==1&&campo[2][2]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][0]==2&&campo[1][1]==2&&campo[2][2]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    if(campo[0][2]==1&&campo[1][1]==1&&campo[2][0]==1)
    {
    vittoria=1;
    gotoxy(2,25);printf("Ha vinto P1!");
    getch();
    }
    if(campo[0][2]==2&&campo[1][1]==2&&campo[2][0]==2)
    {
    vittoria=2;
    gotoxy(2,25);printf("Ha vinto P2!");
    getch();
    }
    }

    void istruzioni(void)
    {
    clrscr();
    printf("Con questo programma potrete giocare a Tris in 2 modalita' distinte:");
    printf("\n\n - Single player contro la CPU;");
    printf("\n - Multi player contro un altro avversario");
    printf("\n\nLe regole valide sono quelle del Tris, per cui vince chi riesce ad allineare 3");
    printf("\nsimboli uguali negli 8 modi possibili (2 diagonali 3 orizzontali e 3 verticali");
    printf("\nPer inserire le proprie mosse utilizzare il tasterino numerico con il Num Lock");
    printf("\nattivato");
    getch();
    }

    void esci(void)
    {
    clrscr();
    printf("Programma terminato. Premere un tasto per uscire...");
    getch();
    exit(0);
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Lo so, sono pazzo...

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Io non sono pazzo come te quindi neanche non ci provo a correggerlo

    Qualcosa di + semplice nn si poteva fare?
    E l'algoritmo del tris dovrebbe anche far giocare il computer o solo due giocatori?

    Comunque è assicurato che puoi farlo in 1/10 del codice

  4. #4
    non saprei assolutamente correggerlo ma vai a questo indirizzo:

    http://www.redangel.it/c.asp

    ci sono molti sorgenti e se cerchi bene mi sembra di averne visto qualcuno sui tris....(può anche darsi che tu debba controllare una ventina di pag prima di trovarlo)

    buon lavoro! :metallica

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Grazie per il link, ma se foste impazziti come me e avreste provato a correggerlo, avreste sicuramewnte notato che non c'è nulla di difficile...

  6. #6
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Il fatto è che pare scritto veramente male.....troppo codice!! Forse se con qualche metodo in + lo scrivi veramente in molto meno! Poi qualche riga di commento no eh?
    Mi spiace che oggi è 28 altrimenti una gurdatina gliela avrei data...
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  7. #7
    una buona regola:
    tanti if : cattiva programmazione.
    ora abbiamo tutti i pc sboroni,ma fallo girare su un 486(andrebbe veloce..)e calcola i tempi con 20 if uno sotto l'altro..l'eseguibile passa da tutti quelli..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.