Backup proyecto Joyfe - Borland

This commit is contained in:
2025-06-16 22:54:10 +02:00
commit d61829a1a7
130 changed files with 11881 additions and 0 deletions

613
CPP/PROG9.CPP Normal file
View File

@ -0,0 +1,613 @@
// Prog9
//
// Programadores:
//
// Juan L<>pez Fern<72>ndez
// Mois<69>s Virumbrales Cuenca
// DAI 1<>A
//
// Juego de las tres en raya.
#include<stdio.h>
#include<conio.h>
int pos_x,pos_y,jfila,jcolumna;
int sw1,sw2,sw3,sw4,sw5,sw6,sw7,sw8,sw9;
int con,conaux;
int turno,turnoaux;
int lugar,tablalugar [3][3];
int ganar;
int vaciaf,vaciac;
char jugador1[8],jugador2[8];
char continua;
int limpia;
char fichaX [5][5],ficha0 [5][5];
int win1,win2;
void main()
{
// Inicializaci<63>n de funciones.
char pintar(int pos_x,int pos_y, int turno, int color);
char tablero();
char borrar(int pos_y);
int comprobar(int turno);
char leerdatos();
char pantalla(char jugador1[8],char jugador2[8]);
// Inicializaci<63>n de la ficha X.
fichaX [0][0]='<EFBFBD>';fichaX [0][4]='<EFBFBD>';fichaX [1][1]='<EFBFBD>';fichaX [1][3]='<EFBFBD>';
fichaX [3][1]='<EFBFBD>';fichaX [3][3]='<EFBFBD>';fichaX [4][0]='<EFBFBD>';fichaX [4][4]='<EFBFBD>';
fichaX [2][2]='<EFBFBD>';
// Inicializaci<63>n de la ficha 0.
ficha0 [0][2]='<EFBFBD>';ficha0 [1][1]='<EFBFBD>';ficha0 [1][3]='<EFBFBD>';ficha0 [2][0]='<EFBFBD>';
ficha0 [2][4]='<EFBFBD>';ficha0 [3][1]='<EFBFBD>';ficha0 [3][3]='<EFBFBD>';ficha0 [4][2]='<EFBFBD>';
// Introducci<63>n de datos
leerdatos();
do
{
// Pantalla general
if (continua!='s')
{
pantalla(jugador1,jugador2);
}
tablero();
if (turno==1 && continua=='s')
{
if (ganar==1)
{
win1++;
gotoxy (17,2);
printf ("Partidas ganadas: %d",win1);
}
turno=2;
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
}
else
{
if (turno==2 && continua=='s')
{
if (ganar==2)
{
win2++;
gotoxy (45,2);
printf ("Partidas ganadas: %d",win2);
}
turno=1;
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
}
}
// El programa.
for (vaciaf=0;vaciaf<3;vaciaf++)
{
for (vaciac=0;vaciac<3;vaciac++)
{
tablalugar[vaciaf][vaciac]=0;
}
}
sw1=0;sw2=0;sw3=0;sw4=0;sw5=0;sw6=0;sw7=0;sw8=0;sw9=0;
conaux=1;
lugar=0;
for (con=1,ganar=0;con<=9;con++)
{
con=conaux;
gotoxy (79,25);
fflush(stdin);
textcolor(0);
cscanf("%1d",&lugar);
if (lugar==1 && sw1==0)
{
pos_x=22;pos_y=17;
sw1=1;
if (turno==1)
{
tablalugar [0][2]=1;
}
else
{
tablalugar [0][2]=2;
}
}
else
{
if (lugar==2 && sw2==0)
{
pos_x=38;pos_y=17;
sw2=1;
if (turno==1)
{
tablalugar [1][2]=1;
}
else
{
tablalugar [1][2]=2;
}
}
else
{
if (lugar==3 && sw3==0)
{
pos_x=54;pos_y=17;
sw3=1;
if (turno==1)
{
tablalugar [2][2]=1;
}
else
{
tablalugar [2][2]=2;
}
}
else
{
if (lugar==4 && sw4==0)
{
pos_x=22;pos_y=11;
sw4=1;
if (turno==1)
{
tablalugar [0][1]=1;
}
else
{
tablalugar [0][1]=2;
}
}
else
{
if (lugar==5 && sw5==0)
{
pos_x=38;pos_y=11;
sw5=1;
if (turno==1)
{
tablalugar [1][1]=1;
}
else
{
tablalugar [1][1]=2;
}
}
else
{
if (lugar==6 && sw6==0)
{
pos_x=54;pos_y=11;
sw6=1;
if (turno==1)
{
tablalugar [2][1]=1;
}
else
{
tablalugar [2][1]=2;
}
}
else
{
if (lugar==7 && sw7==0)
{
pos_x=22;pos_y=5;
sw7=1;
if (turno==1)
{
tablalugar [0][0]=1;
}
else
{
tablalugar [0][0]=2;
}
}
else
{
if (lugar==8 && sw8==0)
{
pos_x=38;pos_y=5;
sw8=1;
if (turno==1)
{
tablalugar [1][0]=1;
}
else
{
tablalugar [1][0]=2;
}
}
else
{
if (lugar==9 && sw9==0)
{
pos_x=54;pos_y=5;
sw9=1;
if (turno==1)
{
tablalugar [2][0]=1;
}
else
{
tablalugar [2][0]=2;
}
}
else
{
borrar (24);
textcolor (7);
gotoxy (17,24);
cprintf ("Esa casilla est<73> ocupada, pierde turno.");
fflush (stdin);
getch();
conaux=con;
turnoaux=turno;
turno=0;
}
}
}
}
}
}
}
}
}
comprobar(turno);
// Pintar la ficha correspondiente.
if (turno==1 && ganar==0)
{
pintar(pos_x,pos_y,turno,14);
}
else
{
if (turno==2 && ganar==0)
{
pintar(pos_x,pos_y,turno,2);
}
}
// Siguiente turno.
if (turno==2 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
conaux++;
}
else
{
if (turno==1 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
turno=2;
conaux++;
}
else
{
if (turnoaux==2 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
}
else
{
if (turnoaux==1 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
turno=2;
}
}
}
}
if (con==9 && ganar==0)
{
borrar(24);
gotoxy (17,24);
textcolor(7);
cprintf ("Partida finalizada.");
fflush(stdin);
getch();
}
if (ganar==1)
{
borrar(24);
gotoxy (17,24);
textcolor (14+BLINK);
cprintf ("<EFBFBD><EFBFBD> Ha ganado %s !!",jugador1);
con=10;
fflush (stdin);
getch();
}
else
{
if (ganar==2)
{
borrar(24);
gotoxy (17,24);
textcolor (10+BLINK);
cprintf ("<EFBFBD><EFBFBD> Ha ganado %s !!",jugador2);
con=10;
fflush (stdin);
getch();
}
}
}
borrar(24);
gotoxy (17,24);
textcolor(7);
cprintf ("<EFBFBD>Desea jugar otra vez? ");
fflush(stdin);
cscanf ("%s",&continua);
}
while (continua!='n');
fflush (stdin);
getch();
clrscr();
textcolor (7);
}
// Funci<63>n pintar
char pintar(int pos_x,int pos_y,int turno,int color)
{
for (jfila=0;jfila<=4;jfila++)
{
for (jcolumna=0;jcolumna<=4;jcolumna++)
{
gotoxy (jcolumna+pos_x,jfila+pos_y);
if (turno==1)
{
if (fichaX[jfila][jcolumna]=='<EFBFBD>')
{
textcolor (color);
cprintf ("%c",fichaX[jfila][jcolumna]);
}
}
else
{
if (turno==2)
{
if (ficha0[jfila][jcolumna]=='<EFBFBD>')
{
textcolor (color);
cprintf ("%c",ficha0[jfila][jcolumna]);
}
}
}
}
}
return(0);
}
// Funci<63>n tablero
char tablero()
{
// Fondo tablero.
for (pos_x=15,pos_y=4;pos_y<=22;)
{
textcolor(7);
gotoxy(pos_x,pos_y);
cprintf("<EFBFBD>");
if (pos_x!=65)
{
pos_x++;
}
else
{
pos_x=15;
pos_y++;
}
}
// Recuadro tablero y lineas interior.
for (pos_x=15;pos_x<=65;pos_x++)
{
textcolor (1);
gotoxy (pos_x,4);cprintf ("<EFBFBD>");
gotoxy (pos_x,22);cprintf ("<EFBFBD>");
gotoxy (pos_x,10);cprintf ("<EFBFBD>");
gotoxy (pos_x,16);cprintf ("<EFBFBD>");
}
for (pos_y=4;pos_y<=22;pos_y++)
{
textcolor (1);
gotoxy (15,pos_y);cprintf ("<EFBFBD>");
gotoxy (16,pos_y);cprintf ("<EFBFBD>");
gotoxy (65,pos_y);cprintf ("<EFBFBD>");
gotoxy (64,pos_y);cprintf ("<EFBFBD>");
gotoxy (32,pos_y);cprintf ("<EFBFBD>");
gotoxy (48,pos_y);cprintf ("<EFBFBD>");
}
return(0);
}
// Borrador de l<>nea
char borrar(int pos_y)
{
for (limpia=1;limpia<=80;limpia++)
{
gotoxy (limpia,pos_y);
textcolor (0);
cprintf ("<EFBFBD>");
}
return (0);
}
// Comprobaci<63>n de tres en raya
int comprobar(int turno)
{
if (turno!=0)
{
if (tablalugar[0][0]==turno)
{
if (tablalugar[1][0]==turno)
{
if (tablalugar[2][0]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(38,5,turno,4+BLINK);
pintar(54,5,turno,4+BLINK);
}
}
else
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[2][2]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
else
{
if (tablalugar[0][1]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(22,11,turno,4+BLINK);
pintar(22,17,turno,4+BLINK);
}
}
}
}
}
if (tablalugar[2][0]==turno)
{
if (tablalugar[2][1]==turno)
{
if (tablalugar[2][2]==turno)
{
ganar=turno;
pintar(54,5,turno,4+BLINK);pintar(54,11,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
else
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(54,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(22,17,turno,4+BLINK);
}
}
}
}
if (tablalugar[2][2]==turno)
{
if (tablalugar[1][2]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(22,17,turno,4+BLINK);pintar(38,17,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
}
if (tablalugar[1][0]==turno)
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[1][2]==turno)
{
ganar=turno;
pintar(38,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(38,17,turno,4+BLINK);
}
}
}
if (tablalugar[0][1]==turno)
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[2][1]==turno)
{
ganar=turno;
pintar(22,11,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(54,11,turno,4+BLINK);
}
}
}
}
return(ganar);
}
// Datos
char leerdatos()
{
clrscr();
textcolor(7);
gotoxy (20,11);
cprintf ("Nombre jugador 1: ");
fflush(stdin);
cscanf("%8s",&jugador1);
gotoxy (20,13);
cprintf ("Nombre jugador 2: ");
fflush(stdin);
cscanf("%8s",&jugador2);
return (jugador1[8],jugador2[8]);
}
// Pantalla general
char pantalla(char jugador1[8],char jugador2[8])
{
clrscr();
gotoxy (17,1);
textcolor(14);
cprintf ("X ");textcolor (7);cprintf ("-> %s",jugador1);
gotoxy (53,1);
textcolor (2);
cprintf ("O ");textcolor (7);cprintf ("-> %s",jugador2);
gotoxy (17,24);
printf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
return(turno);
}