Hey!
Ich soll eine Methode schreiben die aus einer Buchstabentabelle, vordefinierte Wörter suchen soll!
Ausgabe soll sein: Wort gefunden oder Wort nicht gefunden!
Die Methode soll vertikal, horizontal und diagonal suchen (diagonal hab ich noch nicht aber egal)
Witzig ist, dass meine Methode zwar funktioniert aber nicht jedes Wort findet :/
(nicht alle Wörter nach den gesucht wird sind auch wirklich drin enthalten)
Vielleich kann mal jemand über meinen Code drüberschaun', find den Fehler einfach nicht!
Schönen Sonntag euch allen
Ich soll eine Methode schreiben die aus einer Buchstabentabelle, vordefinierte Wörter suchen soll!
Ausgabe soll sein: Wort gefunden oder Wort nicht gefunden!
Die Methode soll vertikal, horizontal und diagonal suchen (diagonal hab ich noch nicht aber egal)
Witzig ist, dass meine Methode zwar funktioniert aber nicht jedes Wort findet :/
(nicht alle Wörter nach den gesucht wird sind auch wirklich drin enthalten)
Vielleich kann mal jemand über meinen Code drüberschaun', find den Fehler einfach nicht!
Java:
//
public class Wörterraetsel {
public static void main(String[] args){
char[][] m=
{
{'O','E','S','T','E','R','R','E','I','C','H','P'},
{'E','R','M','I','T','T','E','L','N','Y','F','A'},
{'M','O','S','E','N','D','E','N','E','P','A','L'},
{'P','A','O','I','L','O','O','A','E','O','B','I'},
{'F','O','F','P','C','K','S','P','S','K','F','N'},
{'A','W','T','R','E','H','T','T','E','E','H','Z'},
{'N','L','W','E','D','R','E','I','A','R','I','E'},
{'G','P','A','F','O','D','R','R','N','G','N','R'},
{'E','U','R','O','P','A','T','N','P','H','W','I'},
{'N','M','E','X','P','R','E','S','S','E','E','N'},
{'P','I','N','F','A','N','T','A','S','T','I','C'},
{'W','A','H','N','S','I','N','N','O','K','S','T'}
};
char[][] words=
{{'S','O','F','T','W','A','R','E'},
{'H','I','N','W','E','I','S'},
{'S','E','N','D','E','N'},
{'E','M','P','F','A','N','G','E','N'},
{'E','R','M','I','T','T','E','L','N'},
{'W','A','H','N','S','I','N','N'},
{'E','X','P','R','E','S','S'},
{'S','I','C','H','E','R','H','E','I','T'},
{'N','E','P','A','L'} ,
{'O','S','T','E','R','N'},
{'F','A','N','T','A','S','T','I','C'},
{'L','I','N','Z','E','R','I','N'},
{'K','A','T','A','S','T','R','O','P','H','E'},
{'E','U','R','O','P','A'} ,
{'M','A','T','R','I','X'},
{'P','O','K','E','R'},
{'O','E','S','T','E','R','R','E','I','C','H'},
{'O','P','E','R','N'},
{'F','U','N','N','Y'},
{'M','E','L','K'},
{'T','I','N','T','E'},
{'R','A','E','T','S','E','L'}};
for(int r=0; r<words.length; r++){
char word[];
word= words[r];
boolean z=find(m,word);
if(z==true){
IO.print("\n");
for(int s=0; s<word.length; s++){
IO.print(word[s]);
}
IO.print(": ");
IO.print("Wort gefunden");
}else{
IO.print("\n");
for(int s=0; s<word.length; s++){
IO.print(word[s]);
}
IO.print(": ");
IO.print("Wort nicht gefunden");
}
}
IO.print("\n");
}//end main
public static boolean find(char[][] m, char[] word){
int a=0, b=0, c=0, d=0;
boolean find= false;
if(m != null&& word != null){
//Array 1 durchgehen
for(c=0; c<m.length; c++){
int word_l= word.length;
int word_diff= m[c].length-(a+1);
//ist das Array lange genug für das Wort
if(word_diff >= word_l){
for(b=0; b<word.length; b++){
while(b<word.length){
if(word[b] == m[c][a]){
find= true;
b++;
a++;
}else{
find= false;
b=word.length;
}//end if
}//end while
}//end for
}//end if
}//end for
a=0;
for(a=0; a<m[0].length;a++){
for(d=0; d<m.length; d++){
int word_l= word.length;
int word_diff= (m.length -d)+1;
if(word_diff>=word_l){
b=0;
if(word[0]==m[d][a]){
while(b<word.length){
if(m[d][a]==word[b]){
find= true;
d++;
b++;
}else{
find=false;
b=word.length;
}
}//end while
}//end if
}//end for
}//end if
}//end while a
}//end if null
return find;
}//end find
}//end class
Schönen Sonntag euch allen