ahorcado en applet de java
necesito ayuda con el codigo del juego del ahorcado, en un applet para java. cualquier ayuda es bienvenida
// Ah7.java: Juego del Ahorcado v0.7, [email protected], 00/11/08
// keywords: applets, gráficos, imagenes, eventos, ratón, BitSet
import java.applet.Applet;
import java.util.BitSet;
import java.awt.*;
import java.awt.event.*;
import Ah5; // reutiliza Ah5
public class Ah7 extends Applet {
static final int pix_letra=14;
static final char letras[]="ABCDEFGHIJKLMNÑOPQRSTUVWXYZ".toCharArray();
static final int tot_letras=letras.length;
static final int intentos=8;
protected Ah5 alib=new Ah5();
protected BitSet entradas; // bit=on, si letra-usada
protected char letra;
protected int veces;
protected Image abc;
protected Image mono[]=new Image[6];
public void init() {
abc=getImage(getDocumentBase(),"abc.gif");
for (int i=0; i<mono.length; i++)
mono[i]=getImage(getDocumentBase(),"duke"+(i+3)+".gif");
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
nvo_juego();
}
public void processMouseEvent(MouseEvent event) { //processMouseEvent
if ( event.getID() == MouseEvent.MOUSE_PRESSED ) {
if ( gano() || perdio() ) {
nvo_juego();
return;
}
letra=\'?\';
if ( event.getY() > 20 )
return;
int indice=(event.getX()/pix_letra)%tot_letras;
if ( entradas.get(indice) ) // letra previa/ seleccionada
return;
entradas.set(indice);
letra=letras[indice];
alib.add_letra(letra);
if ( alib.error() )
++veces; // fallo!
repaint();
}
}
public void paint(Graphics g) {
g.drawImage(abc,0,0,this);
// if ( letra!=\'?\' ) g.drawString(("Letra: "+letra),32,130);
g.setColor(Color.white); // deselect
for (int i=0, x=0; i<letras.length; i++, x+=pix_letra)
if ( entradas.get(i) )
g.fillRect(x,0,pix_letra,20); // borra-letra
if ( veces > 0 ) {
final int x1=220, y1=28;
g.setColor(new Color(150,50,0)); // horca
g.fillRect(x1,y1,10,130);
g.fillRect(x1+10,y1,60,10);
g.fillRect(x1+55,y1+10,7,20);
if ( veces == 2 ) { // soga
g.fillOval(x1+43,y1+30,30,30);
g.setColor(getBackground());
g.fillOval(x1+50,y1+38,15,15);
} else if ( veces > 2 ) // mono
g.drawImage(mono[veces-3],x1+20,y1+20,this);
}
if ( gano() )
anuncio("G A N A S T E !!",alib.magica,"Un click para volver a jugar");
else if ( perdio() )
anuncio("TE AHORQUE!!",alib.magica,"Un click para volver a jugar");
else
anuncio("¿Cuál letra?",alib.pista,"Alberto Pacheco ([email protected])");
}
void nvo_juego() {
alib.genera_palabra();
veces=0; letra=\'?\';
entradas=new BitSet(letras.length); // all-false
repaint();
}
boolean gano() { return alib.cmpTxt()==true; }
boolean perdio() { return veces >= intentos; }
void anuncio(String msj, String palabra, String pie) {
Graphics g=getGraphics();
g.setColor(new Color(150,50,0));
g.setFont(new Font("Courier",Font.BOLD,18));
g.drawString(palabra,16,95);
g.setFont(new Font("Fantasy",Font.BOLD,20));
g.drawString(msj,16,145);
g.setColor(Color.black);
g.setFont(new Font("Courier",Font.ITALIC,12));
g.drawString(pie,75,186);
}
} // Ah7
// keywords: applets, gráficos, imagenes, eventos, ratón, BitSet
import java.applet.Applet;
import java.util.BitSet;
import java.awt.*;
import java.awt.event.*;
import Ah5; // reutiliza Ah5
public class Ah7 extends Applet {
static final int pix_letra=14;
static final char letras[]="ABCDEFGHIJKLMNÑOPQRSTUVWXYZ".toCharArray();
static final int tot_letras=letras.length;
static final int intentos=8;
protected Ah5 alib=new Ah5();
protected BitSet entradas; // bit=on, si letra-usada
protected char letra;
protected int veces;
protected Image abc;
protected Image mono[]=new Image[6];
public void init() {
abc=getImage(getDocumentBase(),"abc.gif");
for (int i=0; i<mono.length; i++)
mono[i]=getImage(getDocumentBase(),"duke"+(i+3)+".gif");
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
nvo_juego();
}
public void processMouseEvent(MouseEvent event) { //processMouseEvent
if ( event.getID() == MouseEvent.MOUSE_PRESSED ) {
if ( gano() || perdio() ) {
nvo_juego();
return;
}
letra=\'?\';
if ( event.getY() > 20 )
return;
int indice=(event.getX()/pix_letra)%tot_letras;
if ( entradas.get(indice) ) // letra previa/ seleccionada
return;
entradas.set(indice);
letra=letras[indice];
alib.add_letra(letra);
if ( alib.error() )
++veces; // fallo!
repaint();
}
}
public void paint(Graphics g) {
g.drawImage(abc,0,0,this);
// if ( letra!=\'?\' ) g.drawString(("Letra: "+letra),32,130);
g.setColor(Color.white); // deselect
for (int i=0, x=0; i<letras.length; i++, x+=pix_letra)
if ( entradas.get(i) )
g.fillRect(x,0,pix_letra,20); // borra-letra
if ( veces > 0 ) {
final int x1=220, y1=28;
g.setColor(new Color(150,50,0)); // horca
g.fillRect(x1,y1,10,130);
g.fillRect(x1+10,y1,60,10);
g.fillRect(x1+55,y1+10,7,20);
if ( veces == 2 ) { // soga
g.fillOval(x1+43,y1+30,30,30);
g.setColor(getBackground());
g.fillOval(x1+50,y1+38,15,15);
} else if ( veces > 2 ) // mono
g.drawImage(mono[veces-3],x1+20,y1+20,this);
}
if ( gano() )
anuncio("G A N A S T E !!",alib.magica,"Un click para volver a jugar");
else if ( perdio() )
anuncio("TE AHORQUE!!",alib.magica,"Un click para volver a jugar");
else
anuncio("¿Cuál letra?",alib.pista,"Alberto Pacheco ([email protected])");
}
void nvo_juego() {
alib.genera_palabra();
veces=0; letra=\'?\';
entradas=new BitSet(letras.length); // all-false
repaint();
}
boolean gano() { return alib.cmpTxt()==true; }
boolean perdio() { return veces >= intentos; }
void anuncio(String msj, String palabra, String pie) {
Graphics g=getGraphics();
g.setColor(new Color(150,50,0));
g.setFont(new Font("Courier",Font.BOLD,18));
g.drawString(palabra,16,95);
g.setFont(new Font("Fantasy",Font.BOLD,20));
g.drawString(msj,16,145);
g.setColor(Color.black);
g.setFont(new Font("Courier",Font.ITALIC,12));
g.drawString(pie,75,186);
}
} // Ah7
