First commit 16/08/1996
This commit is contained in:
249
TRESRAYA.CPP
Normal file
249
TRESRAYA.CPP
Normal file
@ -0,0 +1,249 @@
|
||||
/////////////////////////////////TRES EN RALLA////////////////////////////////
|
||||
#include<graphics.h>
|
||||
#include<stdio.h>
|
||||
#include<conio.h>
|
||||
#include<stdlib.h>
|
||||
#include<dos.h>
|
||||
|
||||
|
||||
extern unsigned _stklen = 4096;
|
||||
///////////////////////////DECLARACION DE FUNCIONES///////////////////////////
|
||||
void jugador1(int array[3][3]);
|
||||
void jugador2(int array[3][3]);
|
||||
void ordenador(int array[3][3],char opcion);
|
||||
void dibujamalla();
|
||||
int comprobacion(int array[3][3]);
|
||||
char menu();
|
||||
|
||||
//////////////////////////////FUNCION PRINCIPAL///////////////////////////////
|
||||
void main()
|
||||
{
|
||||
char opcion;
|
||||
int array[3][3];
|
||||
int x,y,a=0,c=0;
|
||||
int gdriver=DETECT,gmode;
|
||||
initgraph(&gdriver,&gmode,"c:\\program\\borlandc\\bgi");
|
||||
clearviewport();
|
||||
//INICIALIZACION DE ARRAY
|
||||
for(x=0;x<3;x++)
|
||||
for(y=0;y<3;y++)
|
||||
array[x][y]=0;
|
||||
////////////////////////////////JUEGO PRINCIPAL///////////////////////////////
|
||||
opcion=menu();
|
||||
dibujamalla();
|
||||
while(a==0&&c<5)
|
||||
{
|
||||
if(opcion=='1')
|
||||
{
|
||||
jugador1(array);
|
||||
if(c!=4) jugador2(array);
|
||||
a=comprobacion(array);
|
||||
c++;
|
||||
}
|
||||
else
|
||||
{
|
||||
jugador1(array);
|
||||
if(c!=4) ordenador(array,opcion);
|
||||
a=comprobacion(array);
|
||||
c++;
|
||||
}
|
||||
}
|
||||
///////////////////////////////RESULTADO FINAL////////////////////////////////
|
||||
setcolor(2);
|
||||
if(a==0) outtextxy(310,400,"EMPATAMOS");
|
||||
if(a==1) outtextxy(270,400,"GANAS TU:MATI WOMAN");
|
||||
if(a==2) outtextxy(270,400,"GANO YO:OSCAR COMPUTER");
|
||||
getch();
|
||||
closegraph();
|
||||
}
|
||||
|
||||
////////////////////////////////////MENU//////////////////////////////////////
|
||||
char menu()
|
||||
{
|
||||
char o='0';
|
||||
outtextxy(230,230,"1.-DOS JUGADORES");
|
||||
outtextxy(230,250,"2.-CONTRA EL ORDENADOR");
|
||||
while(o!='1'&&o!='2')
|
||||
{
|
||||
o=getch();
|
||||
}
|
||||
clearviewport();
|
||||
if(o=='2')
|
||||
{
|
||||
o='0';
|
||||
outtextxy(230,230,"1.-NIVEL APLATANADO");
|
||||
outtextxy(230,250,"2.-NIVEL ENCABRONAO");
|
||||
while(o!='1'&&o!='2')
|
||||
{
|
||||
o=getch();
|
||||
}
|
||||
if(o=='1') o='3'; else o='4';
|
||||
}
|
||||
clearviewport();
|
||||
return o;
|
||||
}
|
||||
|
||||
//////////////////////COMPROBACION DEL TRES EN RALLA//////////////////////////
|
||||
int comprobacion(int array[3][3])
|
||||
|
||||
{
|
||||
int x,y,w=0,suma=0,suma1=0,suma2=0,suma3=0;
|
||||
|
||||
//////////////////LECTURA DEL ARRAY HORIZONTAL Y VERTICAL/////////////////////
|
||||
for(x=0;x<3;x++)
|
||||
{
|
||||
for(y=0;y<3;y++)
|
||||
{
|
||||
if(array[x][y]==1) suma++;
|
||||
if(array[x][y]==2) suma1++;
|
||||
if(array[y][x]==1) suma2++;
|
||||
if(array[y][x]==2) suma3++;
|
||||
}
|
||||
if(suma==3||suma2==3) w=1;
|
||||
if(suma1==3||suma3==3) w=2;
|
||||
suma=0;suma1=0;suma2=0;suma3=0;
|
||||
}
|
||||
|
||||
//////////////////////LECTURA DEL ARRAY DIAGONAL//////////////////////////////
|
||||
suma=0;suma1=0;suma2=0;suma3=0;
|
||||
for(x=0;x<3;x++)
|
||||
{
|
||||
if(array[x][x]==1) suma++;
|
||||
if(array[x][x]==2) suma1++;
|
||||
if(array[2-x][x]==1) suma2++;
|
||||
if(array[2-x][x]==2) suma3++;
|
||||
|
||||
}
|
||||
if(suma==3||suma2==3) w=1;
|
||||
if(suma1==3||suma3==3) w=2;
|
||||
|
||||
////////////////VALOR DEVUELTO DEL ANALISIS DEL ARRAY/////////////////////////
|
||||
return w;
|
||||
}
|
||||
|
||||
////////////////////////////////DIBUJA MALLA//////////////////////////////////
|
||||
void dibujamalla()
|
||||
{
|
||||
int x,y;
|
||||
setcolor(15);
|
||||
for(x=300;x<400;x+=30)
|
||||
{
|
||||
y=150;
|
||||
line(x,y,x,y+200);
|
||||
line(y+100,x-100,y+290,x-100);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////JUGADOR1/////////////////////////////////////
|
||||
void jugador1(int array[3][3])
|
||||
{
|
||||
int a,b;
|
||||
//JUEGAS TU
|
||||
outtextxy(1,1,"Introduce coordenada[x,y]:");
|
||||
gotoxy(27,1);
|
||||
scanf("%i,%i",&a,&b);
|
||||
gotoxy(27,1);
|
||||
printf(" ");
|
||||
while(a<1||a>3||b<1||b>3||array[a-1][b-1]!=0)
|
||||
{
|
||||
outtextxy(200,400,"Introduzca coordenada correcta(pulsa tecla)");
|
||||
getch();
|
||||
setcolor(0);
|
||||
outtextxy(200,400,"Introduzca coordenada correcta(pulsa tecla)");
|
||||
gotoxy(27,1);
|
||||
scanf("%i,%i",&a,&b);
|
||||
gotoxy(27,1);
|
||||
printf(" ");
|
||||
}
|
||||
array[a-1][b-1]=1;
|
||||
setcolor(5);
|
||||
circle(315+((a-1)*30),215+((b-1)*30),10);
|
||||
}
|
||||
|
||||
/////////////////////////////////JUGADOR2/////////////////////////////////////
|
||||
void jugador2(int array[3][3])
|
||||
{
|
||||
int a,b;
|
||||
//JUEGAS TU
|
||||
outtextxy(1,1,"Introduce coordenada[x,y]:");
|
||||
gotoxy(27,1);
|
||||
scanf("%i,%i",&a,&b);
|
||||
gotoxy(27,1);
|
||||
printf(" ");
|
||||
while(a<1||a>3||b<1||b>3||array[a-1][b-1]!=0)
|
||||
{
|
||||
outtextxy(200,400,"Introduzca coordenada correcta(pulsa tecla)");
|
||||
getch();
|
||||
setcolor(0);
|
||||
outtextxy(200,400,"Introduzca coordenada correcta(pulsa tecla)");
|
||||
gotoxy(27,1);
|
||||
scanf("%i,%i",&a,&b);
|
||||
gotoxy(27,1);
|
||||
printf(" ");
|
||||
}
|
||||
array[a-1][b-1]=2;
|
||||
setcolor(3);
|
||||
circle(315+((a-1)*30),215+((b-1)*30),10);
|
||||
}
|
||||
|
||||
/////////////////////////////////ORDENADOR/////////////////////////////////////
|
||||
void ordenador(int array[3][3],char opcion)
|
||||
{
|
||||
int a,b,x=-1,y=-1,r=-1,caso[4]={0,0,0,0},fin=0;
|
||||
int suma=0,suma1=0,suma2=0,suma3=0;
|
||||
//JUEGA EL ORDENADOR
|
||||
if(opcion=='3')
|
||||
//LECTURA DEL ARRAY
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
{
|
||||
for(b=0;b<3;b++)
|
||||
{
|
||||
if(array[a][b]==1) suma++;//VERTICAL
|
||||
if(suma==2) {caso[0]=1;r=a;}
|
||||
if(array[b][a]==1) suma1++;//HORIZONTAL
|
||||
if(suma1==2) {caso[1]=1;r=a;}
|
||||
}
|
||||
if(array[a][a]==1) suma2++;//DIAGONAL
|
||||
if(suma2==2) caso[2]=1;
|
||||
if(array[2-a][a]==1) suma3++;//DIAGONAL INVERSA
|
||||
if(suma3==2) caso[3]=1;
|
||||
if(suma!=3&&suma1!=3&&suma2!=3&&suma3!=3)
|
||||
{suma=0;suma1=0;}
|
||||
else fin=1;
|
||||
}
|
||||
if(caso[0]==1)
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
if(array[r][a]==0) {y=a;x=r;}
|
||||
}
|
||||
if(caso[1]==1&&(x==-1||y==-1))
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
if(array[a][r]==0) {x=a;y=r;}
|
||||
}
|
||||
if(caso[2]==1&&(x==-1||y==-1))
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
if(array[a][a]==0) {x=a;y=x;}
|
||||
}
|
||||
if(caso[3]==1&&(x==-1||y==-1))
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
if(array[2-a][a]==0) {y=a;x=2-y;}
|
||||
}
|
||||
}
|
||||
if(x==-1||y==-1)
|
||||
{
|
||||
for(a=0;a<3;a++)
|
||||
for(b=0;b<3;b++)
|
||||
if(array[a][b]==0) {x=a;y=b;}
|
||||
}
|
||||
//da valores
|
||||
if(fin!=1||(x==-1)&&(y==-1))
|
||||
{
|
||||
array[x][y]=2;
|
||||
setcolor(3);
|
||||
circle(315+(x*30),215+(y*30),10);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user