S.O.S. Nesecito Ayuda

frank
07 de Julio del 2004
urgentisi,mo nesecito ayuda con un codigo que no le entiendo en algunas cosas, y si alguien de ustedes me puede hacer el favor de explicarmelas se los agradecere mucho.

por que este codigo es untrabajo que tengo que entregar este sabado y en realidad estoy algo perdido

y si o es mucho pedir tambien necsito su algoritmo

bueno ahi les dejo el codigo:

==================================================

#include<stdio.h>
#include<conio.h>

void FICHA(int x,char letra);
int REVISA(char ju);
int EMPATE();
void GATO(int x1,int x2,int y1,int y2);

int s,z,g=0,o,w,i2,j,j2;
char x[9],i;

void main()
{vuelta: /*jugfar otra vez*/

textbackground(BROWN); /*cambia el color de fondo*/
textcolor(WHITE); /*cambia el color de texto*/
clrscr(); /*limpia la pantalla*/
GATO(5,5,3,3); /*dibuja el gato*/
for ( i=0; i<=8; i++) x[i]=0;
while(1) /*no se para que sirve*/
{
{
while(1) /*igual*/
{
gotoxy(10,2);
gotoxy(10,2),
printf("DAME UNA CASILLA JUGADOR 1:");
scanf("%d",&z);
if(z>=0 & z<=8 & x[z]==0)
{
FICHA(z,88);
x[z]=1;
break;
}
else{gotoxy(10,2),
printf("CASILLA NO VACIA O FUERA DE RANGO");
delay(500);
}
}
z=REVISA(1);
if(z==1)
{
gotoxy(15,24),
printf("GANO JUGADOR 1");
getch();
goto vuelta;
}

z=EMPATE();
if(z==3)
{
gotoxy(15,24),
printf("JUEGO EMPATADO");
getch();
goto vuelta;
}

while(1)
{
gotoxy(10,2),
printf("DAME UNA CASILLA JUGADOR 2:");
scanf("%d",&z);
if(z>=0 & z<=8 & x[z]==0)
{
FICHA(z,79);
x[z]=2;
break;}
else
{
gotoxy(10,2),
printf("CASILLA NO VACIA O FUERA DE RANGO");
delay(500);
}
}
z=REVISA(2);
if(z==2)
{
gotoxy(15,24);
printf("GANO JUGADOR 2");
getch();
goto vuelta;
}
z=EMPATE();
if(z==3)
{
gotoxy(15,24),
printf("JUEGO EMPATADO");
getch();
goto vuelta;
}
}
}
}


void FICHA(int x,char letra) /*FUNCION PARA ESCRIBIR LA X O EL 0.*/
{switch(x)
{case 0:{ gotoxy(15,4), printf("%c",letra); break;}
case 1:{ gotoxy(40,4), printf("%c",letra); break;}
case 2:{ gotoxy(60,4), printf("%c",letra); break;}
case 3:{ gotoxy(15,13), printf("%c",letra); break;}
case 4:{ gotoxy(40,13), printf("%c",letra); break;}
case 5:{ gotoxy(60,13), printf("%c",letra); break;}
case 6:{ gotoxy(15,21), printf("%c",letra); break;}
case 7:{ gotoxy(40,21), printf("%c",letra); break;}
case 8:{ gotoxy(60,21), printf("%c",letra); break;}
}
}

int REVISA(char ju) /*FUNCION QUE REVISA QUIEN GANO.*/
{s=0;
if(x[0]==ju & x[1]==ju & x[2]==ju) s=ju;
if(x[3]==ju & x[4]==ju & x[5]==ju) s=ju;
if(x[6]==ju & x[7]==ju & x[8]==ju) s=ju;
if(x[0]==ju & x[3]==ju & x[6]==ju) s=ju;
if(x[1]==ju & x[4]==ju & x[7]==ju) s=ju;
if(x[2]==ju & x[5]==ju & x[8]==ju) s=ju;
if(x[0]==ju & x[4]==ju & x[8]==ju) s=ju;
if(x[2]==ju & x[4]==ju & x[6]==ju) s=ju;
return s;
}

int EMPATE() /*REVISA SI EMPATARON*/
{
s=0;
o=0;
for (w=0;w<=8;w++)
if (x[w]) o++;
if (o==9) s=3;
return s;
}

void GATO(int x1,int x2,int y1,int y2) /*ESTA FUNCION DIBUJA EL GATO*/
{ textcolor(YELLOW);
for(i=x1;i<=75; i++)
{
gotoxy(i,9),
cprintf("Í");
}
for(i2=x2; i2<=75; i2++)
{
gotoxy(i2,17),
cprintf("Í");
}
for(j=y1; j<=24; j++)
{
gotoxy(30,j),
cprintf("º");
}
for(j2=y2; j2<=24; j2++)
{
gotoxy(50,j2),
cprintf("º");
}
textcolor(BLACK);

gotoxy(29,8),cprintf("0");
gotoxy(49,8),cprintf("1");
gotoxy(52,8),cprintf("2");
gotoxy(29,16),cprintf("3");
gotoxy(49,16),cprintf("4");
gotoxy(52,16),cprintf("5");
gotoxy(29,23),cprintf("6");
gotoxy(49,23),cprintf("7");
gotoxy(52,23),cprintf("8");


}

==================================================

gracias por todo