Red de conocimiento informático - Aprendizaje de programación - Código fuente interesante de Java

Código fuente interesante de 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.score);

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)));

partitura imprimir 2 . establecer fondo(color . blanco

JLabel LM = new JLabel(" L . M "); >ScorePrint2.setFont((nueva fuente("Tahoma",1,40)));

añadir(label teris);

Añadir (prueba);

add(impresión de partitura 1);

add(impresión de partitura 2);

lm set foreground(color . blanco);

Agregar ( 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. right 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;i<25;i++)

{

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

GameMap[16][I]= 2;

}

for(int I = 0;i<16;i++)

{

GameMap[I][24]= 2;

}

}

Nuevo bloque vacío público()

{

x = 5; y = 0;

forma del bloque =(int)(math . random()*

forma del bloque = (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<4;i++)

for(int j = 0;j<4;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<16;i++)<. /p>

{

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

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

}

for(int I = 0;i<30;i++)

for(int j = 0;j <50;j++)

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

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

}

Turno 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;

repaint();

}

}

Derecho público de invalidación 1()

{

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

{

x+= 1;

repintar();

}

}

Vacío público Abajo1()

{

si(es factible(x,y+1 ,Bloquear

Forma, BlockWay)==1)

{

y+=

repintar();

else if(is factible(x, y+1, BlockShape, BlockWay)==0)

{

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

deline();

if(OverBool==0)

nuevos bloques();

}

}

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

{

for(int I = 0; i<4 ;i++)

{

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

{

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

Devuelve 0;

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

Devuelve 0;

}

}

Devuelve 1;

}

Delineación de vacío público( )

{

int bloques suma = 0;

for(int I = 0; i<25; i++)

{

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

{

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

{

suma de bloques++;

if (SumaDeBloques==15)

{

for(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; p>

puntuación bool = 1;

}

}

}

suma de bloques = 0;

}

}

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

{

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

Devuelve verdadero

Otros

Devuelve falso

}

}

Clase abierta Tetris

{

Public static void main(String[] args )

{

Juego test2 = new Game();

}

}

Tómelo Jugando con un nuevo archivo JAVA llamado Tetris, era demasiado vago para Modifique la interfaz antes.