Comparando chars

miliciano
16 de Julio del 2002
hola, estoy haciendo un breve ejemplo utilizando la clase String y algunas propiedades de la clase Arrays.

Este es el codigo,

import java.util.*;
class Ahorcado{
//JavaGuide xacadesigners www.inginfo.8k.com

//Atributos

String frasesjoin[] = {"miguelstrogoff","bastianbaltasarbux","sherlockholmes","fujur","atreyu"};
String frasesprint[] = {"Miguel Strogoff","Bastian Baltasar Bux","Sherlock Holmes","Fujur","Atreyu"};
String temp;
char letras[];
int errores, numer, indexletras;
boolean enable;

//Metodos

void setFrase(){
temp = frasesjoin[(int)Math.ceil(Math.random()*frasesjoin.length-1)];
System.out.println(temp+" "+temp.length());
letras = new char[temp.length()];
System.out.println(letras.length);
setIntVal();
numer = (int)(temp.length()-1)/2;
}

void setIntVal(){

for(int i=0;i<letras.length;i++)
letras[i]='@';
}

void GameStatus(){

if(full()){
System.out.println("Ganaste !!!");
enable = true;
}
if(errores < numer)
System.out.println("Llevas ="+errores+" errores");
else{
System.out.println("Ahorcado");
enable = true;
}
}

void Checkchar(char ch){

int cont = 0;

for(int i=0;i<temp.length();i++)
if(temp.charAt(i)==ch)cont++;
//System.out.println("Entro info ="+temp.charAt(i)+" "+cont);



if(cont != 0){

Arrays.sort(letras);
//letras debe estar ordenado para usar binarysearch

if(Arrays.binarySearch(letras,ch) >= 0)
System.out.println("La letra "+ch+" ya la dijiste");
else{
GameStatus();

while(cont != 0 && indexletras<letras.length){

System.out.print(indexletras);
letras[indexletras]=ch;
indexletras++;
cont--;

}
}

}
else{
errores++;
GameStatus();
}
}

void giveMeLetters(){
System.out.print("Ingresa una letra =");
char ch = ConsoleInput.getChar();
if(Character.isLetter(ch))Checkchar(ch);
}

boolean GameOver(){

return enable;

}

boolean full(){

boolean state = true;

for(int i=0;i<letras.length;i++){
//if(!(Character.isLetter(letras[i]))) state = false;
if(letras[i]=='@')
state = false; //no esta lleno
}

return state;
}

public static void main(String[] args){

Ahorcado horca= new Ahorcado();//invocamos el constructor por defecto
horca.setFrase();

while(!horca.GameOver())
horca.giveMeLetters();


}//fin main
}//Fin de la clase

El problema es que cuando hago binary search a veces no me funciona, si alguien ve el error me dicen.

miliciano
16 de Julio del 2002
hola, para [email protected] que les interese, el problema que tenia no era comparando chars, si no cuando ordenaba el vector.

si quieren ver el codigo, pueden visitar mi pagina y de paso miran el manual de java que estoy realizando.

http://www.inginfo.8k.com

suerte.