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);
}