Solicitando una copia del código fuente JAVA para el minijuego "Snake"

GreedSnake

importar java.awt.*;

importar java.awt.event.*

clase pública GreedSnake // Clase principal

{

/**

* @param args

*/

vacío estático público main(String[] args) {

// TODO Código auxiliar de método generado automáticamente

new MyWindow()

}

}

clase MyPanel extiende Panel implementa KeyListener, Runnable//Clase de panel personalizado, hereda el teclado y la interfaz de subprocesos

{

Botón serpiente[] //; Definir botón de serpiente

int shu=0; //Número de secciones de serpiente

int food[]; //Matriz de alimentos

resultado booleano= true; /Determinar si el resultado es una victoria o una pérdida

Hilo de hilo; //Definir hilo

static int weix, weiy //Posición de los alimentos

boolean; t =true; //Determina si el juego ha terminado

int fangxiang=0; //Dirección del movimiento de la serpiente

int x=0, y=0;

MiPanel()

{

setLayout(null

snake=nuevo Botón[20]; p>comida= nuevo int [20];

thread=new Thread(this);

for(int j=0;jlt;20;j)

{

food[j]=(int)(Math.random()*99 //Definir 20 alimentos al azar

}

weix); =(int )(food[0]*0.1)*60; //El dígito de las decenas*60 es la abscisa

weiy=(int)(food[0]10)*40; unidades dígito*40 es coordenada vertical

for(int i=0;ilt;20;i)

{

serpiente[i]=nuevo botón(

}

add(serpiente[0]);

serpiente[0].setBackground(Color.negro

snake[0] .addKeyListener(this); //Agrega un monitor de teclado para la cabeza de serpiente

snake[0].setBounds(0, 0, 10, 10); setBackground(Color.cyan)

}

public void run() //recibiendo hilo

{

mientras(t)

{

if(fangxiang==0)//correcto

{

>try

{

x =10;

snake[0].setLocation(x, y //Establece la posición de la cabeza de la serpiente

if(x==weixamp;amp;y==weiy) //comer comida

{

shu

weix=(int; ) (food[shu]*0.1)*60;

weiy=(int)(food[shu]10)*40;

repaint(); one Food

add(snake[shu]); //Agrega el número y la posición de los segmentos de serpiente

snake[shu].setBounds(snake[shu-1].getBounds( ));

}

thread.sleep(100); //Dormir 100 ms

}

catch(Exception e){ }

catch(Exception e){}

p>

}

else if(fangxiang==1)//left

{

prueba

{

x-=10

serpiente[0].setLocation(x, y)

if(x==weixamp;amp;y==weiy )

{

shu

weix=(int; )(comida[shu]*0.1)*60;

weiy= (int)(comida[shu]10)*40

repintar(); p>add(serpiente[shu]);

serpiente[shu] .setBounds(serpiente[shu-1].getBounds()

}

thread.sleep(100);

}

catch(Exception e){}

}

else if(fangxiang= =2)//hacia arriba

{

prueba

{

y-=10; [0].setLocation(x, y);

if(x ==weixamp;amp;y==weiy)

{

shu

weix=(int)(comida[shu]*0.1)*60

weiy=(int)(comida[shu]10)*40; >repintar();

add(serpiente[shu]);

serpiente[shu].setBounds(serpiente[shu-1].getBounds()

);

}

thread.sleep(100);

}

catch(Exception e){}

}

else if(fangxiang==3)//abajo

{

intenta

{

y =10

serpiente[0].setLocation(x, y

if(x==weixamp;amp;y==weiy)

>

{

shu;

weix=(int)(comida[shu]*0.1)*60; comida[shu]10)*40;

repintar();

add(serpiente[shu]);

serpiente[shu].setBounds(serpiente). [shu-1].getBounds());

}

thread.sleep(100);

}

catch( Excepción e){}

}

int num1=shu;

while(num1gt; 1)//Determina si te muerdes la cola

{

if(serpiente[num1].getBounds().x==serpiente[0].getBounds().xamp;amp;serpiente[num1].getBounds().y= = serpiente[0].getBounds().y)

{

t=false

result=false

repintar; ( );

}

num1--;

}

if(xlt;0||xgt;=this.getWidth ( )||ylt;0||ygt;=this.getHeight())//Determina si golpea la pared

{

t=false; p>resultado= falso;

repintar();

}

int num=shu

mientras(numgt; 0) //Establecer la posición de la sección de la serpiente

{

snake[num].setBounds(snake[num-1].getBounds()); ;

}

if(shu==15) //Si el número de segmentos de serpiente es igual a 15, se logra la victoria

{

t=falso;

p>

resultado=verdadero;

repintar(); p>

}

public void keyPressed(KeyEvent e) //Presiona la tecla de dirección del teclado

{

if(e.getKeyCode()= =KeyEvent.VK_RIGHT)//Tecla derecha

{

if(fangxiang!=1)//Si la dirección anterior no es hacia la izquierda

fangxiang=0

}

else if(e.getKeyCode()==KeyEvent.VK_LEFT)

{ if(fangxiang!=0)

fangxiang=1;

}

else if(e.getKeyCode()==KeyEvent.VK_UP)

{ if(fangxiang!=3)

fangxiang=2;

}

else if(e.getKeyCode()==KeyEvent.VK_DOWN)

{ if(fangxiang!=2)

fangxiang=3

}

}

público; void keyTyped(KeyEvent e)

{

}

public void keyReleased(KeyEvent e)

{

}

public void paint(Gráficos g) //Dibujar en el panel

{

int x1=this.getWidth()-1

int x1=this.getWidth()-1; p>

p>

int y1=this.getHeight()-1;

g.setColor(Color.red);

g.fillOval(weix, weiy, 10, 10 ); //Comida

g.drawRect(0, 0, x1, y1); //Pared

if(t==falseamp;amp;resultado ==false)

g.drawString("¡JUEGO TERMINADO!", 250, 200); //Error al generar el juego

else if(t==false&resultado ==true)

p>

g.drawString("¡GANA!", 250, 200); //Salida del juego exitosamente

}

}

clase MyWindow extiende Frame implementa ActionListener//Clase de ventana personalizada

{

MyPanel my

Botón btn; p>Panel panel;

p>

MiVentana()

{

super("GreedSnake"); =nuevo MiPanel();

btn=nuevo Botón("comenzar");

panel=nuevo Panel()

btn.addActionListener(este) ;

panel.add( new Label("Presione la tecla Tab después de comenzar a seleccionar la serpiente")); >panel.add(new Label("Presione las teclas arriba, abajo, izquierda y derecha Controle la acción de la serpiente"));

add(panel, BorderLayout.NORTH); (mi, BorderLayout.CENTER);

setBounds(100, 100, 610, 500);

setVisible(true);

validate(); /p>

addWindowListener(new WindowAdapter()

{

cierre de ventana pública vacía(WindowEvent e)

{

Sistema .exit(0);

}

});

}

acción nula pública realizada (

ActionEvent e)//Presiona el botón de inicio

{

if(e.getSource()==btn)

{

prueba

{

my.thread.start(); //Iniciar el hilo

my.validate();

catch(Excepción ee){}

}

}

}