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

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

Juego de tetrisgráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 20 de Febrero del 2020 por Adelino (Publicado el 25 de Enero del 2018)
29.714 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
1.003 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
547 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
673 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
364 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
442 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
419 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
589 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
544 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
953 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
527 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
300 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
339 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
313 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
250 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
566 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
620 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
439 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.078 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
746 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.286 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.774 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.394 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.883 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.767 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.725 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.784 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
1.333 visualizaciones desde el 24 de Noviembre del 2019

3.7

Actualizado el 11 de Enero del 2020 (Publicado el 6 de Enero del 2020)gráfica de visualizaciones de la versión: 3.7
984 visualizaciones desde el 6 de Enero del 2020

3.8

Actualizado el 16 de Febrero del 2020 (Publicado el 26 de Enero del 2020)gráfica de visualizaciones de la versión: 3.8
914 visualizaciones desde el 26 de Enero del 2020

3.9

Publicado el 20 de Febrero del 2020gráfica de visualizaciones de la versión: 3.9
162 visualizaciones desde el 20 de Febrero del 2020
http://lwp-l.com/s4406