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

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

Juego de tetrisgráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 24 de Noviembre del 2019 por Adelino (Publicado el 25 de Enero del 2018)
26.071 visualizaciones desde el 25 de Enero del 2018
Juego de tetris en pantalla grafica (modo 13), se maneja con las teclas de dirección y escape, para cambiar nivel + y -.

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
918 visualizaciones desde el 25 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
clock_t T;
textmode(C40);
_setcursortype(_NOCURSOR);
char far*p=(char far*) 0xB8000000L; //Puntero a memoria de pantalla
char E;
char A[][16]={"0000000011110000", //Piezas
              "0000001011100000",
              "0000010001110000",
              "0000010011100000",
              "0000001101100000",
              "0000110001100000",
              "0000011001100000"};
int B[]={12,8,4,0,13,9,5,1,14,10,6,2,15,11,7,3}; //Rotacion
int F[]={0x10,0x20,0x30,0x40,0x50,0x60,0x10}; //Color del fondo
int C[16],D[16],N[16],Y[25]; //Casillas y lineas
int a,b,c,d,n,x,y;
for(y=25;y--;) //Dibujo del marco
for(Y[y]=0,x=13;x--;)
*(p+80*y+2*x+29)=0x70*(y>22||x<2||x>10);
for(n=16;n--;) N[n]=n/4*80+n%4*2; //Pieza en la parrilla
 
Inicio:
a=rand()%7; //Pieza siguiente
for(n=16;n--;) C[n]=A[a][n]-48; //Copiado de la pieza
c=39; //Casilla de comienzo
T=clock();
for(n=16;n--;) //Plasmar la pieza
if(C[n]) if(*(p+N[n]+c)) return 0; //Si no esta libre finaliza
         else *(p+N[n]+c)=F[a];
do{while(kbhit()) getch(); //Vacia teclado
   b=E=0;
   while(!E)
   if(kbhit()) E=getch(); //Lectura de teclado
   else if(clock()-T>9) E=80; //Fin de temporizado=Abajo
   if(E==27) return 0; //Escape=Fin
   d=c+80*(E==80)+2*(E==77)-2*(E==75); //Teclas de direccion
   if(d!=c){for(n=16;n--;) //Derecha, izquierda o abajo
            if(C[n]) *(p+N[n]+c)=0; //Borrado
            for(n=16;n--;)
            if(C[n]&&*(p+N[n]+d)) b=1;
            if(!b) //Si hay hueco dibujar
            for(c=d,n=16;n--;)
            if(C[n]) *(p+N[n]+c)=F[a];
           }
   if(E==72){for(n=16;n--;) //Arriba=Giro a derechas
             if(C[n]) *(p+N[n]+c)=0;
             for(n=16;n--;)
             if((D[n]=C[B[n]])&&*(p+N[n]+c)) b=1;
             if(!b)
             for(n=16;n--;)
             if(C[n]=D[n]) *(p+N[n]+c)=F[a];
            }
   if(E==80) T=clock();
   if(b) //Redibujar
   for(n=16;n--;)
   if(C[n]) *(p+N[n]+c)=F[a];
  }while(E!=80*b); //La pieza esta posada
y=c/80;
n=y+4;
if(n>23) n=23; //Comprobar lineas completas
for(;y<n;y++){d=80*y+33;
              for(a=x=0;x++<9;d+=2)
              a+=!*(p+d);
              if(!a) //Vaciar completas
              for(d-=2,Y[y]=x=0;x++<9;d-=2)
              *(p+d)=0;
              else Y[y]=a<9;
             }
for(a=n;--a;) //Las lineas con bloques bajan
if(!Y[y=a])
while(--y)
if(Y[y]){d=80*y+33;
         Y[y]=x=0;
         Y[a]=y=1;
         for(;x++<9;d+=2){*(p+80*a+2*x+31)=*(p+d);
                          *(p+d)=0;
                         }
        }
goto Inicio;
}



Comentarios sobre la versión: 1.0 (2)

26 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
Hola adelio, muy buen trabajo de lo que es el juego.

pero serias tan amable de informarme si has trabajado con netbeans, ya que ando haciendo un juego de memoria y pues logre hacerlo tipo pareja, pero que se vena la misma imagen.. ahora bien, quiero modificarlo pero me lo estan pidiendo que sea complementario, osea una imagen y buscar la descripcion de esa misma imagen.. es para la universidad y no se como hacerlo.. me podrias ayduar
u orientar xfavr...

este es el codigo de la logica del juego:

package auxiliar;

import java.util.Random;

/**
*
* @author Web Bacalao
*/
public class LogicaJuego {

public int[] getCardNumbers(){

int[] numbers = new int[16];
int count = 0;

while(count <16){
Random r = new Random();
int na = r.nextInt(8) + 1;
int nvr = 0;



for (int i = 0; i < 16; i++){
if(numbers[i] == na){
nvr++;
}
}

if(nvr <2){

numbers[count] = na;
count++;
}
}
return numbers;
}

}
Responder
Imágen de perfil
26 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
Tu codigo parece que es Java, sucede que yo he comenzado hace poco a programar en C++ por lo que los objetos, estructuras o funciones me quedan algo lejos.
Gracias.
Responder

Comentar la versión: 1.0

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

1.1

Actualizado el 3 de Marzo del 2019 (Publicado el 27 de Enero del 2018)gráfica de visualizaciones de la versión: 1.1
509 visualizaciones desde el 27 de Enero del 2018

1.2

Actualizado el 3 de Marzo del 2019 (Publicado el 1 de Febrero del 2018)gráfica de visualizaciones de la versión: 1.2
644 visualizaciones desde el 1 de Febrero del 2018

1.3

Actualizado el 3 de Marzo del 2019 (Publicado el 22 de Febrero del 2018)gráfica de visualizaciones de la versión: 1.3
345 visualizaciones desde el 22 de Febrero del 2018

1.4

Actualizado el 3 de Marzo del 2019 (Publicado el 25 de Febrero del 2018)gráfica de visualizaciones de la versión: 1.4
417 visualizaciones desde el 25 de Febrero del 2018

1.5

Actualizado el 3 de Marzo del 2019 (Publicado el 5 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.5
393 visualizaciones desde el 5 de Marzo del 2018

1.6

Actualizado el 3 de Marzo del 2019 (Publicado el 10 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.6
558 visualizaciones desde el 10 de Marzo del 2018

1.7

Actualizado el 3 de Marzo del 2019 (Publicado el 27 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.7
516 visualizaciones desde el 27 de Marzo del 2018

1.8

Actualizado el 3 de Marzo del 2019 (Publicado el 11 de Abril del 2018)gráfica de visualizaciones de la versión: 1.8
924 visualizaciones desde el 11 de Abril del 2018

1.9

Actualizado el 3 de Marzo del 2019 (Publicado el 4 de Junio del 2018)gráfica de visualizaciones de la versión: 1.9
504 visualizaciones desde el 4 de Junio del 2018

2.0

Actualizado el 3 de Marzo del 2019 (Publicado el 19 de Junio del 2018)gráfica de visualizaciones de la versión: 2.0
274 visualizaciones desde el 19 de Junio del 2018

2.1

Actualizado el 3 de Marzo del 2019 (Publicado el 20 de Junio del 2018)gráfica de visualizaciones de la versión: 2.1
318 visualizaciones desde el 20 de Junio del 2018

2.2

Actualizado el 3 de Marzo del 2019 (Publicado el 23 de Junio del 2018)gráfica de visualizaciones de la versión: 2.2
286 visualizaciones desde el 23 de Junio del 2018

2.3

Actualizado el 3 de Marzo del 2019 (Publicado el 29 de Junio del 2018)gráfica de visualizaciones de la versión: 2.3
219 visualizaciones desde el 29 de Junio del 2018

2.4

Actualizado el 3 de Marzo del 2019 (Publicado el 2 de Julio del 2018)gráfica de visualizaciones de la versión: 2.4
539 visualizaciones desde el 2 de Julio del 2018

2.5

Actualizado el 3 de Marzo del 2019 (Publicado el 14 de Julio del 2018)gráfica de visualizaciones de la versión: 2.5
596 visualizaciones desde el 14 de Julio del 2018

2.6

Actualizado el 3 de Marzo del 2019 (Publicado el 5 de Agosto del 2018)gráfica de visualizaciones de la versión: 2.6
405 visualizaciones desde el 5 de Agosto del 2018

2.7

Actualizado el 3 de Marzo del 2019 (Publicado el 13 de Agosto del 2018)gráfica de visualizaciones de la versión: 2.7
1.057 visualizaciones desde el 13 de Agosto del 2018

2.8

Actualizado el 3 de Marzo del 2019 (Publicado el 4 de Septiembre del 2018)gráfica de visualizaciones de la versión: 2.8
722 visualizaciones desde el 4 de Septiembre del 2018

2.9

Actualizado el 3 de Marzo del 2019 (Publicado el 16 de Septiembre del 2018)gráfica de visualizaciones de la versión: 2.9
1.264 visualizaciones desde el 16 de Septiembre del 2018

3.0

Actualizado el 3 de Marzo del 2019 (Publicado el 4 de Noviembre del 2018)gráfica de visualizaciones de la versión: 3.0
1.751 visualizaciones desde el 4 de Noviembre del 2018

3.1

Actualizado el 3 de Marzo del 2019 (Publicado el 29 de Enero del 2019)gráfica de visualizaciones de la versión: 3.1
1.370 visualizaciones desde el 29 de Enero del 2019

3.2

Actualizado el 5 de Junio del 2019 (Publicado el 4 de Marzo del 2019)gráfica de visualizaciones de la versión: 3.2
4.854 visualizaciones desde el 4 de Marzo del 2019

3.3

Actualizado el 17 de Junio del 2019 (Publicado el 13 de Abril del 2019)gráfica de visualizaciones de la versión: 3.3
2.744 visualizaciones desde el 13 de Abril del 2019

3.4

Actualizado el 23 de Septiembre del 2019 (Publicado el 4 de Julio del 2019)gráfica de visualizaciones de la versión: 3.4
1.695 visualizaciones desde el 4 de Julio del 2019

3.5

Actualizado el 17 de Octubre del 2019 (Publicado el 26 de Septiembre del 2019)gráfica de visualizaciones de la versión: 3.5
1.752 visualizaciones desde el 26 de Septiembre del 2019

3.6

Publicado el 24 de Noviembre del 2019gráfica de visualizaciones de la versión: 3.6
499 visualizaciones desde el 24 de Noviembre del 2019
http://lwp-l.com/s4406