Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <conio.h>
- #include <windows.h>
- #define COLT 12
- #define FILAT 24
- char tablero[FILAT][COLT] = {0};
- typedef struct
- {
- int activa; /// activa 1 no activa 0 en tablero
- int color; /// Comming Soon
- int limite; /// Maxima extension de una ficha horizontal y vertical
- char pieza[4][4][4]; /// Matriz 3D ROTACION-FILA-COLUMNA
- } Pieza;
- ///Carga las matrices Almacenes en las struc de las fichas
- void cargarPiezasenFichas(int rot,int fil,int col,char ficha[rot][fil][col],char almacen[rot][fil][col]);
- void cargarPiezaAJugar(Pieza fija, Pieza enJuego);
- void mostrarPiezaMatri1 (int rotacion,int fila, int colum, char matri1[rotacion][fila][colum]);
- int rotacionPieza(Pieza piezaN, int rot);
- void mostrarTablero (char tablero[FILAT][COLT]);
- int pasaFichaToTablero (int rotacion,int i, char tablero[FILAT][COLT], Pieza enJuego);
- void limpiaTablero (char tablero[FILAT][COLT]);
- int main()
- {
- SetConsoleTitle("Tetris ERROR 404 v0.0 UTN MDP [JUN-2019]");
- int rotacion=0;
- char controlROT=getch();
- //char controlPIEZ='o';
- int selecPieza=0;
- int ultimaFila=0;
- //char ctrlMov=getch();
- int movAbajo=0;
- int movIzquier=0;
- int Piezas[7];
- mostrarTablero(tablero);
- Pieza aJugar;
- Pieza fichaL,fichaLI,fichaS,fichaSI,fichaT,fichaC,fichaP;
- ///ficha L
- fichaL.activa =1;
- fichaL.limite =3;
- fichaL.color =1;
- ///ficha L Invertida
- fichaLI.activa =1;
- fichaLI.limite =3;
- fichaLI.color =2;
- ///ficha S
- fichaS.activa =1;
- fichaS.limite =3;
- fichaS.color =3;
- ///ficha S Invertida
- fichaSI.activa =1;
- fichaSI.limite =3;
- fichaSI.color =4;
- ///ficha T
- fichaT.activa=1;
- fichaT.limite=3;
- fichaT.color=5;
- ///ficha Cubo
- fichaC.activa =1;
- fichaC.limite =2;
- fichaC.color =6;
- ///ficha Palo
- fichaP.activa =1;
- fichaP.limite =4;
- fichaP.color =7;
- ///Almacenes de fichas para introducir en la estructura pieza.ficha
- char almacenELE[4][4][4]=
- {
- {
- {'1','0','0','0'},
- {'1','0','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','1','0'},
- {'1','0','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- },{
- {'0','0','1','0'},
- {'1','1','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenELEI[4][4][4]=
- {
- {
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'}
- },{
- {'1','0','0','0'},
- {'1','1','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'1','0','0','0'},
- {'1','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','1','0'},
- {'0','0','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenESE[4][4][4]=
- {
- {
- {'0','1','1','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','0','0','0'},
- {'1','1','0','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','1','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','0','0','0'},
- {'1','1','0','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenESEI[4][4][4]=
- {
- {
- {'1','1','0','0'},
- {'0','1','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','0','0'},
- {'1','1','0','0'},
- {'1','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'0','1','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','0','0'},
- {'1','1','0','0'},
- {'1','0','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenLAT[4][4][4]=
- {
- {
- {'0','1','0','0'},
- {'1','1','1','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','0','0'},
- {'0','1','1','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- },{
- {'0','0','0','0'},
- {'1','1','1','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','0','0'},
- {'1','1','0','0'},
- {'0','1','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenCUBO[4][4][4]=
- {
- {
- {'1','1','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'1','1','0','0'},
- {'1','1','0','0'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- }
- };
- char almacenPALO[4][4][4]=
- {
- {
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'0','1','0','0'}
- },{
- {'0','0','0','0'},
- {'1','1','1','1'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- },{
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'0','1','0','0'},
- {'0','1','0','0'}
- },{
- {'0','0','0','0'},
- {'1','1','1','1'},
- {'0','0','0','0'},
- {'0','0','0','0'}
- }
- };
- ///carga de las matrices en las estruc
- cargarPiezasenFichas(4,4,4,fichaL.pieza,almacenELE);
- cargarPiezasenFichas(4,4,4,fichaLI.pieza,almacenELEI);
- cargarPiezasenFichas(4,4,4,fichaS.pieza,almacenESE);
- cargarPiezasenFichas(4,4,4,fichaSI.pieza,almacenESEI);
- cargarPiezasenFichas(4,4,4,fichaT.pieza,almacenLAT);
- cargarPiezasenFichas(4,4,4,fichaC.pieza,almacenCUBO);
- cargarPiezasenFichas(4,4,4,fichaP.pieza,almacenPALO);
- do
- {
- fflush(stdin);
- printf("%c ",controlROT=getch());
- if (controlROT=='r')
- {
- rotacion=rotacionPieza(fichaT,rotacion);
- movIzquier=pasaFichaToTablero(rotacion,movAbajo,tablero,fichaT);
- system("cls");
- mostrarTablero(tablero);
- limpiaTablero(tablero);
- }
- else if (controlROT=='f')
- {
- ultimaFila=pasaFichaToTablero(rotacion,movAbajo,tablero,fichaT);
- //printf("%d\n",ultimaFila);
- system("cls");
- mostrarTablero(tablero);
- movAbajo++;
- limpiaTablero(tablero);
- }
- }
- while(ultimaFila!=24);
- return 0;
- }
- void mostrarPiezaMatri1 (int rotacion,int fila, int colum, char matri1[rotacion][fila][colum])
- {
- int i;
- int j;
- for(i=0; i<fila; i++)
- {
- for(j=0; j<colum; j++)
- {
- if(matri1[rotacion][i][j]!='0')
- //printf("%c",matri1[rotacion][i][j]);
- printf("X");
- else
- printf(" ");
- }
- printf("\n");
- }
- }
- void cargarPiezasenFichas(int rot,int fil,int col,char ficha[rot][fil][col],char almacen[rot][fil][col])
- {
- int i=0;
- int j=0;
- int k=0;
- for(i=0; i<rot; i++)
- {
- for(j=0; j<fil; j++)
- {
- for(k=0; k<col; k++)
- {
- ficha[i][j][k]=almacen[i][j][k];
- }
- }
- }
- }
- int rotacionPieza(Pieza piezaN, int rot)
- {
- rot++;
- if(rot==4)
- rot=0;
- piezaN.pieza[rot];
- return rot;
- }
- void cargarPiezaAJugar(Pieza fija, Pieza enJuego)
- {
- int i,j,k;
- enJuego.limite=fija.limite;
- enJuego.color=fija.color;
- for(i=0; i<4; i++)
- {
- for(j=0; j<4; j++)
- {
- for(k=0; k<4; k++)
- {
- enJuego.pieza[i][j][k]= fija.pieza[i][j][k];
- }
- }
- }
- }
- void mostrarTablero (char tablero[FILAT][COLT]) ///Imprime el tablero y analiza como dibujarlo.
- {
- int i,j;
- for (i=0; i<FILAT; i++)
- {
- for(j=0; j<COLT; j++)
- {
- /*if(tablero[i][j]=='1')
- printf("X");
- else
- printf(".");*/
- printf(" %c", (tablero[i][j]=='1')? 'X' : 250);
- }
- printf("\n");
- }
- }
- ///**** PASA LA FICHA CORRECTAMENTE ***//////
- int pasaFichaToTablero (int rotacion,int i, char tablero[FILAT][COLT], Pieza enJuego)
- {
- int posicion=0;
- int j=3; ///tienen que ser iguales
- int c2=0;
- int c1=0;
- while ((i<FILAT)&&(c1<4))
- {
- while ((j<COLT)&&(c2<4))
- {
- tablero[i][j] = enJuego.pieza[rotacion][c1][c2];
- c2++;
- j++;
- }
- i++;
- c2=0;
- j=3; ///tiene que ser iguales
- c1++;
- }
- /* for (i=0; i<fila; i++)
- {
- if (c1<5)
- {
- for(j=1; j<colum; j++)
- {
- if (c2<5)
- {
- tablero[i][j] = enJuego.pieza[c1][c2];
- c2++;
- }
- }
- c2=0;
- c1++;
- }
- // else i=fila;*/
- posicion++;
- return posicion;
- }
- void limpiaTablero (char tablero[FILAT][COLT]) ///Limpia el tablero del residuo del movimiento anterior.
- {
- int i,j;
- for(i=0; i<FILAT; i++)
- {
- for (j=0; j<COLT; j++)
- {
- tablero[i][j]=0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement