import java.applet.* ; import java.awt.* ; import java.lang.*; import java.util.Random; public class vibora extends Applet implements Runnable { public Graphics g; public Button Iniciar,Pausa,rapido,lento; int x2,y2,vel,largo,xx,yy; int x[],y[]; int avance; Random aleat; Thread hilo; Image aux; public void azar() { boolean sale = false; int i; while (!sale) { xx = aleat.nextInt() % ((x2-10) / 10) * 10; yy = aleat.nextInt() % ((y2-30) / 10) * 10; if (xx < 0) xx*=-1; if (yy < 0) yy*=-1; System.out.println ("xx= " + xx + " yy = " + yy); System.out.println ("Largo= " + largo); sale = true; for (i=0; i0; i--) { x[c]=i*10; y[c]=1; c++; } azar(); vel=100; add(Iniciar=new Button("Iniciar")); add(Pausa=new Button("Pausa")); add(rapido=new Button("acelerar")); add(lento=new Button("alentar")); setBackground (Color.white); aux = createImage(x2,y2); g = aux.getGraphics(); } public void start() { if (hilo == null) { hilo = new Thread (this); hilo.start(); } } public void stop() { if (hilo != null) { hilo.stop(); hilo=null; } } public void run() { int i; while (hilo!=null) { if (avance != 0) recorre(); switch (avance){ case 1: x[0]+=10; break; case 2: x[0]-=10; break; case 3: y[0]-=10; break; case 4: y[0]+=10; break; } if (x[0] == xx && y[0] == yy+1) { // cuando come azar(); x[largo+1] = x[largo] = x[largo-1]; y[largo+1] = y[largo] = y[largo-1]; largo += 2; } if (x[0]>x2-20) avance = 5 ; if (y[0]>y2-30) avance = 5 ; if (x[0]<0) avance = 5 ; if (y[0]<0) avance = 5 ; for (i=1; i0; i--) { x[i] = x[i-1]; y[i] = y[i-1]; } } public void paint (Graphics g) { int i; rapido.setLocation(10+x2/4*2,y2-25); lento.setLocation(10+x2/4*3,y2-25); Iniciar.setLocation(10,y2-25); Pausa.setLocation(10+x2/4,y2-25); g.drawRect(0,0,x2-10,y2-30+1); for (i=0; iy[i+1]) g.fillRect(x[i]+1,y[i]-3,8,12); if (x[i]==x[i+1] && y[i]x[i+1]) g.fillRect(x[i]-3,y[i]+1,12,8); if (y[i]==y[i+1] && x[i]