juego del ahocado

ALAIN
11 de Marzo del 2006
TENGO QUE EXPONER EN CLASE ESTE JUEGO Y NO ENTIENDO COMO EXPLICARSELO A LA CLASE DICIENDOLES QUE SE HACE EN CADA METODO Y ALGO SOBRE LA CLASE STRING Y LA CLASE SRINGBUFFERING NI IDEA DE PARA QUE SE UTILIZAN

ESQUE EL CODIGO LO CONSEGUI PORQUE NO ME SALIA

ESPERO ME PUEDAN AYUDAR

public class Juego{
public static void main(String args[])throws Exception{

Ahorcado Jugada=new Ahorcado();
do{
System.out.print("Cáracter a jugar: \t");

System.out.println(Jugada.play((char)System.in.read()));
System.in.skip(2l);
}


while(Jugada.seguirJuego());

}
}

class Ahorcado{
//Palabras que utiliza el juego.
private final String palabras[]={"Coincidencia","Arrepentirse",
"Hipertension","Monarquia","Plataforma",
"Resplandeciente"
};

//Palabra con la que se esta jugando.
private String palabraJuego=new String();

//carácter encontrado.
private boolean letrasEncontradas[];

//Guarda errores...
private int Errores=0;

public Ahorcado(){
palabraJuego=palabras[(int)Math.round(Math.random()*(palabras.length-1))].toLowerCase();
letrasEncontradas=new boolean[palabraJuego.length()];
}

public String play(char respuesta)throws
java.io.IOException{

respuesta=new String(new Character(respuesta).toString()).toLowerCase().charAt(0);

if(!seguirJuego()){
System.err.println("El juego no puede continuar");
return new String();
}


String Monito[]={"_\n"," |\n"," O\n","-","|","-\n","/"," \\\n"};

//Bandera de localización
boolean encontrada=false;

//posición de inicio de búsqueda en palabra
int posIni=0;

//Posición en cadena
int posOnStr=0;

do{
if(palabraJuego.indexOf((int)respuesta,posIni)>=0){
encontrada=true;
posIni=palabraJuego.indexOf((int)respuesta,posIni);
letrasEncontradas[posIni]=true;
posIni+=1;
}

}while(palabraJuego.indexOf((int)respuesta,posIni)!=-1);

if(!encontrada){
System.err.println("Cáracter \"NO\" encontrado");
Errores+=1;
for(int i=0;i<Errores;i++)
System.out.print(Monito[i]);
}
System.out.println("\n");

StringBuffer CadenaIRET=new StringBuffer();
for(int i=0;i<palabraJuego.length();i++){
if(letrasEncontradas[i])
CadenaIRET.append(palabraJuego.charAt(i));
else
CadenaIRET.append("_");
}

return CadenaIRET.toString();
}

public boolean seguirJuego(){
boolean unF=false;
for(int i=0;i<letrasEncontradas.length;i++){
if(letrasEncontradas[i]==false)
unF=true;
}
return ((Errores<8)&&(unF));
}
}