Red de conocimiento informático - Aprendizaje de programación - Código fuente del juego en línea Java

Código fuente del juego en línea Java

Importar javax.swing.*;

Importar Java.awt.*;

Importar Java.awt.event.*;

Class Game extiende JFrame para implementar KeyListener, Runnable

{

Thread Down10 = nuevo hilo (este);

prueba del lienzo del juego = nuevo lienzo del juego(); > JLabel LabelTetris = new JLabel("Juego de Tetris");

JLabel Score print 1 = new JLabel(" Score ");

JLabel Score print 2 = new JLabel(" 0 " test. puntuación);

Juego()

{

setSize(400, 800);

establecer visible(true) ;

establecer diseño (nuevo diseño de flujo());

prueba agregar clave oyente (este);

etiqueta establecer fondo (color . blanco) ;

label teris.setFont((nueva fuente("Tahoma",1,50)));

ScorePrint1.setFont((nueva fuente("Tahoma",1, 40 )));

imprimir partitura 2. establecer fondo(color . blanco);

JLabel LM = new JLabel(" L . M ");

ScorePrint2.setFont((nueva fuente(" Tahoma ", 1, 40)));

add(label teris

Agregar (prueba

< p); >add(partitura imprimir 1);

add(partitura imprimir 2);

lm set foreground(color . blanco);

add(LM ).

validar();

abajo 10. start();

}

Ejecución pública no válida()

{

mientras(verdadero)

{

Intentar

{

Probar. abajo 1();

abajo 10. dormir(700);

}

catch(excepción interrumpida I){ I. printstacktrace();}

}

}

Clave de anulación pública (evento clave K)

{

if(K.getKeyCode ()==KeyEvent.VK_left)

Prueba. left 1();

else if(k . obtener código clave() = = evento clave. VK_UP)

Prueba.

turn();

else if(k . obtener código clave() = = evento clave. VK_right)

Prueba. derecha 1();

else if(k . obtener código clave() = = evento clave. VK_DOWN)

{

Prueba. abajo 1();

if (test.ScoreBool==1)

{ puntuación imprimir 2. settext(" test.

puntuación);}

}

}

clave pública nula liberada (evento clave e){ }

clave pública nula escrita( evento clave e){ }

}

Clase GameCanvas extiende el lienzo

{

int x=5, y = 0;

int GameMap[][]= nuevo int[50][100];

int BlockShape

int BlockWay

int Score= 0;

int puntuación bool = 0;

int over pool = 0;

público final estático int[][][]Bloques = { { { 0, 0, 0, 0, 1, 1, 1, 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},

{0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 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},

{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}},

{{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}},

{{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}},

{{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}},

{{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}},

{{0,1,0,0,1,1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0

,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0},

{1,1,1,0,0, 1,0,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}}};

GameCanvas()

{

setSize(340, 500);

p>

setBackground(color.

negro);

for(int I = 0;ilt25;i)

{

Mapa del juego[0][I]= 2;

p>

GameMap[16][I]= 2;

}

for(int I = 0; i lt16; i )

{

GameMap[I][24]= 2;

}

}

Nuevo bloque vacío público()

{

x = 5; y = 0;

forma del bloque =(int)(matemática. aleatorio()*

);

bloque camino =(int)(math . random()* 3);

if(IsOver(x, y)==true)

{ over bool = 1 ;}

}

public void Keep(int x, int y, int BlockShape, int BlockWay)

{

int n = 0;

for(int I = 0;i lt4;i)

for(int j = 0;j lt4;j)

{

if(GameMap[x j 1][y I]= = 0)

{

GameMap[x j 1][y I]= Bloques[forma de bloque ][manzana ][n];

}

n;

}

}

Público pintura en blanco (gráfico G)

{

g . set color(color . white

for(int I = 0; i lt16; i )

{

if(Bloques[forma de bloque][camino de bloque][I]= = 1)

G.drawRect((i4 x 1)* 20, (i /4 y)*20, 20, 20);

}

for(int I = 0; i lt30; i)

for(int j = 0; j lt50; j )

if(GameMap[I][j]= = 1 | | GameMap[I][j]= = 2)

G.fillRect (i*20, j*20, 20, 20);

}

Giro de vacío público()

{

if (es factible(x,y,BlockShape,BlockWay)==1)

{

bloque camino =(bloque camino 1) 4;

repintar( );

}

}

Vacío público Izquierda1()

{

si (es factible( x-1, y, BlockShape, BlockWay)==1)

{

x-= 1;

repintar();

}

}

Derecho de nulidad pública 1()

{

si(es factible(x 1 , y, BlockShape ,BlockWay)==1)

{

x =

1;

repintar();

}

}

Vacío público Abajo1()

{

si(es factible(x,y 1,BlockShape,BlockWay)==1)

{

y = 1;

repintar();

}

si no (es factible(x, y 1, BlockShape, BlockWay)==0)

{

Keep(x, y, BlockShape, block way);

deline();

if(OverBool==0)

nuevos bloques( );

}

}

público int es factible (int x, int y, int BlockShape, int BlockWay)

{

for(int I = 0;i lt4;i)

{

for(int j = 0;j lt4;j)

{

if(Bloques[forma de bloque][camino de bloque][I * 4 j]== 1 amp; amp mapa de juego[x j 1][y i]==1)

Devuelve 0;

else if(Bloques[forma del bloque][camino del bloque][I * 4 j]= = 1 amp; amp mapa del juego[x j 1][y i]== 2 )

Devuelve 0;

}

}

Devuelve 1;

}

Public void Deline()

{

int bloques suma = 0

for(int I = 0; i lt25; i )

{

for(int j = 0; j lt16; j )

{

if (GameMap[j][i]= = 1)

{

suma de bloques;

if (BlocksSum==15)

{

para (int p = I; p gt0; p -)

{

for(int q = 0; q lt16; q )

{

Mapa del juego[q][p]=Mapa del juego[q][p-1];

}

}

Puntuación= 10 ;

puntuación bool = 1

}

}

}

suma de bloques = 0; /p>

}

}

IsOver booleano público (int x, int y)

{

if( es factible (x, y, BlockShape, BlockWay)==0)

Devuelve verdadero

Otros

Devuelve falso

}< / p>

}

Clase abierta Tetris

{

Public static void main(String[] args)

{

Juego test2 = nuevo Juego();<

/p>

}

}

Lo usé para jugar con un nuevo archivo JAVA llamado Tetris. Antes era demasiado vago para modificar la interfaz.