Hallo hänge mal wieder etwas bei Programmieren vielleicht könnt ihr mir erklären wo das Problem in meinem Programm liegt. Versuche derzeit viel mit statischen Variablen zu Programmieren. Kann bei meinen Programm zwar einen Char ins Programm einlesen und er wird auch an der richtigen Stelle ausgegeben aber leider merkt sich das Array nicht die letzten gefundenen Zeichen. Habe bei jedem neuen Aufruf wieder ein Array mit nur '*'.
lg Loxa789
lg Loxa789
Java:
public class hangman1{
static int rand, winGame;
static int errorTrys;
static char[] searchTerm, starArray;
static char letterToTest;
public static void main (String[] args){
String st3 = "hansmoser"; // String für Funkiontest soll durch random ersetzt werden
int n=0;
char choice;
do{
searchTerm = stringToArray(st3); //parse Hangmanwort für Tests
printCharArray(searchTerm); // ausgabe Hangman char für Tests
printStars(); //nur für erstausgabe
do{
searchTerm = stringToArray(st3);
letterToTest = createPlayer();
createField1();
printWordWithStars();
createField1();
if(winGame == searchTerm.length){
Out.println();
Out.println("Gewonnen");
Out.println("Das gesuche Wort war "+st3);
Out.println();
break;
}
n++;
}while(n <= searchTerm.length+7);
Out.println();
Out.print("Weiterspielen (j/n) ");
choice = In.readChar();
}while(choice == 'j');
} // end main
static void printCharArray(char[] searchTerm){ // nur für Tests
Out.println("\n");
for(int i = 0; i < searchTerm.length;i++){
Out.print(" "+searchTerm[i]);
} Out.println();
} // endprintArray
static char[] printStars(){ // nur für die Erstausgabe
Out.println("\n");
starArray = new char[searchTerm.length];
for(int i = 0; i < searchTerm.length;i++){
starArray[i] = '*';
Out.print(" "+starArray[i]);
}
Out.println("\n");
return starArray;
}
static char[] createField1(){
for(int i = 0; i < searchTerm.length;i++){
if(letterToTest == searchTerm[i]){
searchTerm[i] = 't';
starArray[i] = searchTerm[i];
}else{
searchTerm[i] = 'f';
}
}
return searchTerm;
}// createField1
static char[] printWordWithStars(){
for(int i = 0; i < searchTerm.length;i++){
if(searchTerm[i] == 't'){
searchTerm[i] = letterToTest;
Out.print(" "+searchTerm[i]);
winGame++;
}else{
Out.print(" *");
}
} return searchTerm;
}// printWordWithStars
static char createPlayer(){
Out.println();
Out.print("Geben sie bitte einen Kleinbuchstaben ein! = ");
char letter = In.readChar();
return letter;
}
static char[] stringToArray(String st3){
char[] a = st3.toCharArray(); // parse string to charArray
return a;
}// end stringToArray
}