Código de C/Visual C - Tetris en modo texto

Imágen de perfil
Val: 1.017
Oro
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Tetris en modo textográfica de visualizaciones


C/Visual C

Actualizado el 24 de Noviembre del 2019 por Adelino (Publicado el 25 de Enero del 2018)
2.445 visualizaciones desde el 25 de Enero del 2018
Juego de tetris en pantalla de texto, se maneja con las teclas de dirección y escape.
Para subir o bajar de nivel + y -.
5a72583eee6a3-tetrix

Requerimientos

Esta probado en turboC++ 3.0

1.0

Actualizado el 3 de Marzo del 2019 (Publicado el 25 de Enero del 2018)gráfica de visualizaciones de la versión: 1.0
141 visualizaciones desde el 25 de Enero del 2018

1.1

Actualizado el 3 de Marzo del 2019 (Publicado el 13 de Julio del 2018)gráfica de visualizaciones de la versión: 1.1
220 visualizaciones desde el 13 de Julio del 2018

1.2

Actualizado el 3 de Marzo del 2019 (Publicado el 26 de Julio del 2018)gráfica de visualizaciones de la versión: 1.2
268 visualizaciones desde el 26 de Julio del 2018

1.3

Actualizado el 3 de Marzo del 2019 (Publicado el 17 de Agosto del 2018)gráfica de visualizaciones de la versión: 1.3
1.475 visualizaciones desde el 17 de Agosto del 2018

1.4

Actualizado el 15 de Octubre del 2019 (Publicado el 9 de Octubre del 2019)gráfica de visualizaciones de la versión: 1.4
241 visualizaciones desde el 9 de Octubre del 2019

1.5

Publicado el 24 de Noviembre del 2019gráfica de visualizaciones de la versión: 1.5
101 visualizaciones desde el 24 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Rutina principal optimizada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
char A[4][4][7][4]={
"0000","0000","0000","0000","0000","0000","0000",
"1111","0100","0010","0110","0110","0100","0110",
"0000","0111","1110","0011","1100","1110","0110",
"0000","0000","0000","0000","0000","0000","0000"};
char E,far*q=1967+(char far*)0xB8000000;
char far*Q[250],C[7][4][4],e[256];
int D[250],Y[25],I[4],i[4];
int G[]={1,2,3,0};
int X[]={10,1,-1,0};
int M=9,c=250,p=6;
int L,a,g,n,x,y;
 
int main(){
textmode(C40);
_setcursortype(_NOCURSOR);
clock_t T;
srand(time(NULL));
 
printf("%c[3;28f Nivel=1",27);
e[77]=1,e[75]=2,e[72]=3;
for(y=25;y--;*(q+=22)=8,*--q=219,q-=81)
for(x=10;x--;*q--=219,D[c]=1)
*(Q[--c]=q--)=y%24*x?0:8;
 
for(c=48,g=4;g--;c=0)
for(a=7;a--;)
for(n=0,y=4;y--;)
for(x=4;x--;)
if(A[g][y][a][x]=A[G[g]][x][a][3-y]-c)
C[a][g][n++]=10*y+x;
 
Inicio:
printf("%c[5;28fLineas=%u",27,L);
for(n=4;n--;*(q+502)=0,D[I[n]=c]=0)
if(!*Q[c=4+C[a=p][g=0][n]]) *(q=Q[c])=a+1;
else while(1) if(getch()==27) return 0;
p=rand()%7;
for(c=n=4;n--;*--q=219)
*(q=Q[C[p][0][n]]+510)=p+1;
 
do{
   if(n<0) T=clock();
   do if(E=kbhit()) E=getch();
      while(!E&&clock()-T<M);
   if(E==27&&getch()==E) return 0;
   if(y=(E=='-'&&M<10)-(E=='+'&&M>1))
   printf("%c[3;35f%u",27,10-(M+=y));
   y=X[x=e[E]]?g:G[g];
   for(n=4;n--;)
   if(*Q[i[n]=c+C[a][y][n]+X[x]]&&D[i[n]]) break;
   if(n+1) continue;
   for(n=4;n--;)
   if(D[i[n]]--) *Q[i[n]]=a+1;
   for(n=4;n--;I[n]=i[n])
   if(++D[I[n]]) *Q[I[n]]=0;
   x>2?g=y:c+=X[x++];
  }while(x);
 
for(n=4;n--;Y[y=I[n]/10]++,D[I[n]]=1);
do while(Y[x=y]>8)
   do for(L+=x==y,c=10*x--,n=9;n--;)
      *Q[++c]=x?*Q[c-10]:0;
      while(Y[x+1]=Y[x]);
   while(Y[--y]);
goto Inicio;
}



Comentarios sobre la versión: 1.5 (0)


No hay comentarios
 

Comentar la versión: 1.5

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4407