Código de C/Visual C - Juego de tetris

<<>>
Imágen de perfil
Actualizado

Juego de tetrisgráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 24 de Junio del 2018 por Adelino (Publicado el 25 de Enero del 2018)
3.794 visualizaciones desde el 25 de Enero del 2018. Una media de 182 por semana
Juego de tetris en pantalla de texto y grafica, se maneja con las teclas de dirección y escape, para cambiar nivel + y -.

Screenshot_20180225-011717

Requerimientos

Esta probado en turbo C++ 3.0

1.0
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 25 de Enero del 2018gráfica de visualizaciones de la versión: 1.0
364 visualizaciones desde el 25 de Enero del 2018. Una media de 21 por semana

1.1

Actualizado el 30 de Enero del 2018 (Publicado el 27 de Enero del 2018)gráfica de visualizaciones de la versión: 1.1
264 visualizaciones desde el 27 de Enero del 2018. Una media de 14 por semana

1.2

Actualizado el 06 de Febrero del 2018 (Publicado el 01 de Febrero del 2018)gráfica de visualizaciones de la versión: 1.2
449 visualizaciones desde el 01 de Febrero del 2018. Una media de 28 por semana

1.3

Publicado el 22 de Febrero del 2018gráfica de visualizaciones de la versión: 1.3
156 visualizaciones desde el 22 de Febrero del 2018. Una media de 14 por semana

1.4

Actualizado el 03 de Marzo del 2018 (Publicado el 25 de Febrero del 2018)gráfica de visualizaciones de la versión: 1.4
249 visualizaciones desde el 25 de Febrero del 2018. Una media de 21 por semana

1.5

Actualizado el 08 de Marzo del 2018 (Publicado el 05 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.5
216 visualizaciones desde el 05 de Marzo del 2018. Una media de 14 por semana

1.6

Actualizado el 24 de Marzo del 2018 (Publicado el 10 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.6
385 visualizaciones desde el 10 de Marzo del 2018. Una media de 28 por semana

1.7

Actualizado el 11 de Abril del 2018 (Publicado el 27 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.7
332 visualizaciones desde el 27 de Marzo del 2018. Una media de 28 por semana

1.8

Actualizado el 14 de Mayo del 2018 (Publicado el 11 de Abril del 2018)gráfica de visualizaciones de la versión: 1.8
754 visualizaciones desde el 11 de Abril del 2018. Una media de 77 por semana

1.9

Actualizado el 09 de Junio del 2018 (Publicado el 04 de Junio del 2018)gráfica de visualizaciones de la versión: 1.9
352 visualizaciones desde el 04 de Junio del 2018

2.0

Publicado el 19 de Junio del 2018gráfica de visualizaciones de la versión: 2.0
95 visualizaciones desde el 19 de Junio del 2018

2.1

Actualizado el 23 de Junio del 2018 (Publicado el 20 de Junio del 2018)gráfica de visualizaciones de la versión: 2.1
148 visualizaciones desde el 20 de Junio del 2018

2.2

Actualizado el 24 de Junio del 2018 (Publicado el 23 de Junio del 2018)gráfica de visualizaciones de la versión: 2.2
32 visualizaciones desde el 23 de Junio del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Las piezas estan creadas en un area de 4X4, girando a derechas con el punto central de eje (patron r[]), para situarse en la zona de juego (11X25) segun los valores de la matriz R[].
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include<dos.h>
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int i[275],Y[25];
int main()
{
_AX=0x13;
geninterrupt(0x10);
clock_t T=clock();
srand(time(NULL));
printf("%c[3;28f Nivel=1",27);
char far*q=(char far*)0xA0000000;
char E,far*Q[275][49];
char A[][16]={"0000111100000000",
              "0000010001110000",
              "0000001011100000",
              "0000011000110000",
              "0000001101100000",
              "0000001001110000",
              "0000011001100000"};
int r[]={12,8,4,0,13,9,5,1,14,10,6,2,15,11,7,3};
int R[]={0,1,2,3,11,12,13,14,22,23,24,25,33,34,35,36};
int F[275],I[275],J[4],G[]={1,2,3,0};
int B[7][4][16],C[7][4][4],e[256],f[275],j[4];
int b=256,c=274,d=49,g=275,n=61956;
int a,x,y,p=6,L=0,M=9;
 
while(d--) e[d]=d/7*320+d%7;
for(y=25;y--;F[y]=g-=11,n-=2472)
for(x=11;x--;f[c--]=y,n-=8)
for(a=I[c]=8*(y%24<1||x%10<1),d=49;d--;)
*(Q[c][d]=q+n+e[d])=a;
for(a=7;a--;) for(g=0;g<4;g++) for(n=d=0;d<16;d++)
if(B[a][g][d]=g?B[a][g-1][r[d]]:A[a][d]-48)
C[a][g][n++]=R[d];
while(b--) e[b]=11;
e[72]=0;
e[75]=-1;
e[77]=1;
 
Inicio:
for(n=0;n<4;n++) if(!I[c=J[n]=C[a=p][g=0][n]+4])
                 for(i[c]++,d=49;d--;*Q[c][d]=a+1)
                 *(Q[c][d]+17048)=0;
                 else while(1) if(getch()==27)
                               return 0;
p=rand()%7;
while(n--) for(c=C[p][0][n],d=49;d--;)
           *(Q[c][d]+17080)=p+1;
 
x=c=4;
do{
   while(E=kbhit()) getch();
   do if(kbhit()) E=getch();
      while(!E&&clock()-T<M);
   if(E==27&&getch()==27) return 0;
   if(E=='-') printf("%c[3;35f%u",27,10-(M+=M<10));
   if(E=='+') printf("%c[3;35f%u",27,10-(M-=M>1));
   x+=E=e[E];
   y=E?g:G[g];
   for(n=0;n<4;n++)
   if(I[j[n]=C[a][y][n]+x]) break;
   if(n<4) x=-1;
   else{
        while(n--) if(++i[b=j[n]]<2)
                   for(d=49;d--;)
                   *Q[b][d]=a+1;
        for(n=4;n--;J[n]=j[n]) if(--i[b=J[n]]<1)
                               for(d=49;d--;)
                               *Q[b][d]=0;
        if(c==x) g=y;
        else c=x;
       }
   if(E==11) T=clock();
   else x=c;
  }while(x+1);
 
for(n=0;n<4;n++,I[b]=a+1,i[b]--)
Y[y=f[b=J[n]]]++;
do while(Y[x=y]>8)
   do{
      if(x==y) printf("%c[5;28fLineas=%u",27,++L);
      b=F[x];
      Y[--x]-=Y[x+1]=Y[x];
      c=F[x];
      for(n=9;n--;) if(I[++c]+I[++b])
                    for(I[c]-=I[b]=g=x?I[c]:0,d=49;d--;)
                    *Q[c][d]-=*Q[b][d]=g;
     }while(Y[x+1]);
   while(Y[--y]);
goto Inicio;
}



Comentarios sobre la versión: 2.2 (0)


No hay comentarios
 

Comentar la versión: 2.2

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/s4406  
Revisar política de publicidad