Red de conocimiento informático - Aprendizaje de programación - Código fuente del documento Javaweb

Código fuente del documento Javaweb

Importar Java.awt.borderlayout;

Importar Java.awt.dimension;

Importar Java.awt.toolkit;

Importar javax.swing.jframe;

@SuppressWarnings("serial ")

La clase pública MainClass extiende JFrame {

ControlControlSnake;

Kit de herramientas;

Dimensión dimensión

Public static void main(String[] args) {

Nueva clase principal("mi serpiente");

}

Clase principal pública (cadena){

Superusuario;

control = nueva serpiente de control();

control setfocusable( true);

kit = kit de herramientas . getdefaulttoolkit();

dimen = kit .getscreensize(); diseño(new BorderLayout());

setLocation(dimen.width / 3, dimen. height/3); //dimen.width/3, dimen.height/3

setSize(FWIDTH, FH height);

setDefaultCloseOperation(JFrame.

EXIT _ ON _ CLOSE);

setResizable(false);

set visible(true);

}

final estático público; int FWIDTH = 315;

Final estático público int FHEIGHT = 380

}

Importar Java .awt .color;

Importar Java . awt . dimensión;

Importar Java .awt .gráficos;

Importar Java .punto .

Importar evento de clave Java .

Importar evento de clave Java . ;

Importar Java . ArrayList

Importar Java . Importar javax.swing.jpanel;

Importar javax.swing.timer;

@SuppressWarnings("serial")

Control de clase pública Snake extiende JPanel para implementar ActionListener {

Rand aleatorio

ArrayList lt punto gtlist, listBody

String str, str 1;

Clave booleana estática;

p>

int x, y, dx, dy, fx, fy, flag

Cuerpo interno de la serpiente;

velocidad int;

Control público Snake () {

Cuerpo de serpiente = 1;

Str = "Las teclas de dirección arriba, abajo, izquierda y derecha controlan la tecla P para pausar..." ;

Str1 = "La longitud actual es: " cuerpo de serpiente;

clave = verdadero

bandera = 1;

velocidad = 700 ;

rand = nuevo Aleatorio( );

lista = nuevo ArrayList lt punto gt();

listBody = nuevo ArrayList lt punto gt(); /p>

x = 5;

y = 5;

list.add(nuevo punto(x, y));

cuerpo de la lista agregar(lista. get(0));

p>

dx = 10;

dy = 0

FX = nextint. (30)* 10 5; // 2

fy = rand . nextint(30)* 10 5; // 2

setBackground(color.

negro);

setSize(nueva dimensión(318, 380));

tiempo del temporizador final = nuevo temporizador(velocidad, esto

tiempo de inicio). ();

addkey listener(new key adaptor(){

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

if (e.getKeyCode() = = 37) {

dx =-10;

dy = 0;

} else if (e.getKeyCode() == 38) {

dx = 0;

dy =-10;

} si (e.getKeyCode() == 39) {

dx = 10;

dy = 0;

} else if (e.getKeyCode() == 40) {

dx = 0;

} else if (e.getKeyCode() == 40) {

dx = 0;

p>

dy = 10;

} else if (e.getKeyCode() == 80) {

if (bandera 2 == 1) {

time . >}

if(bandera 2 == 0) {

hora .

}

bandera;

}

}

});

}

Pintura pública en blanco (gráfico g) {

g.setColor(color.blanco);

g.fillRect(0, 0, 400, 400);

p>

g.setColor(color .gris oscuro);

g.Dibujar línea(3,3,305,3);

g.Tirar línea(3,3, 3, 305); p>g. tirar del cable (305, 3, 305, 305);

g. rosa);

for(int I = 0; i ltlist body . size(); i ) {

g.fillRect(listBody. get(i)). x, listaCuerpo.get(i). y, 9, 9);

}

g.fillRect(x, y, 9, 9);

g.setColor(color.naranja) ;

g.fillRect(fx,fy,9,9);

g.setColor(color.dark grey);

Str1 = "Longitud actual Para: " cuerpo de serpiente;

g. Cordón (str, 10, 320);

g. Cordón (str1, 10, 335);

}

Acción de anulación pública realizada (evento de acción e){

x = dx;

y = dy

if ( makeOut(; ) == falso) {

Joptionpane.

Mostrar cuadro de diálogo de mensaje(vacío, "Reiniciar...");

Velocidad = 700

Cuerpo de serpiente = 1

x = 5;

y = 5;

lista .clear();

lista.add(nuevo punto (x, y)); >cuerpo de la lista .clear();

cuerpo de la lista .add(lista . get(0));

}

addPoint(x, y);

if(x == FX amp; ampy == fy) {

Velocidad = (int)(velocidad * 0.8); //Parámetro de aumento de velocidad

If (velocidad lt200) {

Velocidad = 100;

}

FX = rand . nextint(30)* 10 5; // 2

fy = nextint(30)* 10 5; p>

cuerpo de serpiente; // 2

} // 2

repintar();

}

Vacío público add point(int xx, int yy) {

//Registra dinámicamente las coordenadas movidas en los últimos 50 pasos.

//Y dibuja el último cuerpo de serpiente.

if(list . size() lt; 100) {//La longitud máxima del cuerpo de la serpiente es 100.

list.add(new point (xx, YY));

} En caso contrario {

list . >list.add(new point(xx, YY));

}

if (snakeBody == 1) {

lista de cuerpo remove(0. );

listBody.add(0, list . get(list . size()-1));

} En caso contrario {

lista de cuerpo. ();

if(lista . tamaño() lt; cuerpo de serpiente){

for(int I = lista . tamaño()-1; i gt0; i-) {

cuerpo de la lista . add(list . get(I));

}

}else {

for(int I = tamaño de lista()-1; cuerpo de lista. tamaño() lt; cuerpo de serpiente;

cuerpo de lista. }

}

}

}

MakeOut booleano público() {

if ((x lt3 | | y lt3)| |(x gt; 305 | | y gt305)) {

Devuelve falso

}

for(int I = 0; i ltlist cuerpo . tamaño()-1; i ) {

for(int j = I 1; j ltlist cuerpo . tamaño(); j ) {

if (listBody. obtener (yo).

es igual(listBody.get(j))) {

Devuelve falso

}

}

}

Devuelve verdadero

}

}

/*Código de serpiente*/