Hallo liebe User,
ich bin neu im forum und ebenfalls ein neuling in java.
von der uni aus haben wir als erstes mit Drracket (funktionale programmiersprache programmiert).
Deswegen fällt es mir sehr schwer, in java (objektorientiert) zu denken..
nun lernen wir in der uni java und dazu gab es als erste hausübungen natürlich ein wortsuchspiel (mein prof ist da etwas übermotiviert)
Zur aufgabe:
wir sollen eine art "wortsuchspiel" implementieren
Dazu werden zwei arrays, einmal typ char [] [] und typ string [] angelegt
beim ersteren müsst ihr das euch so ungefähr vorstellen:
LIONWB
SHEEPI
CATSUR
DOGTZD
letzteres enthält die worte, die wir vermuten im wortgitter vorzufinden
meine ersten aufgaben ist nun:
public StringBuilder ndWordsHFw() soll das Wortgitter nach horizontal (waagrecht) in normaler
Leserichtung geschriebenen Worten durchsuchen. So wurde in dem obenstehenden Beispiel
etwa das Wort LION in Zeile 0, Spalte 0 gefunden.
Diese und die folgenden Methoden geben jeweils einen StringBuilder zuruck. Dieser soll fur
jedes gefundene Wort in dieser Methode exakt eine wie folgt aufgebaute Ausgabe haben.
Dabei endet jede Zeile mit einem Zeilenvorschub ("nn"), wobei fur (exakt) ein Leerzeichen
steht:
Found 'LION' at row 0, column 0 orientation horizontal forwards
Bei den anderen Methoden sind die beiden letzten Worter jeweils passend zu ersetzen, wie
dort beschrieben.
meine Idee war nun, dass ich versuche, mit zwei for-schleifen einmal die einzelnen char-elemente mit dem ersten string (indem ich den string in einzlene buchstabe zerlege) vergleiche und schaue, ob diese identisch ist
problem: da es horizontal ist, kann ich mir denken dass ich anscheinend bei der for-schleife zuerst char [0] anfangen muss, nun weiß ich aber nicht was er dann machen soll wenn er auf die zweite zeile übergehen soll
problem 2: was tun wenn das erste wort nicht dem ersten horizontalen char entspricht?
rekursion gibt es in java ja nicht wirklch, bzw wird nicht oft benutzt
problem 3: wie kann ich es dann machen, dass die restlichen worte im string auch noch verglichen werden
ICH BIN ÜBER JEDE HILFE MEHR ALS NUR DANKBAR!!!
ich bin neu im forum und ebenfalls ein neuling in java.
von der uni aus haben wir als erstes mit Drracket (funktionale programmiersprache programmiert).
Deswegen fällt es mir sehr schwer, in java (objektorientiert) zu denken..
nun lernen wir in der uni java und dazu gab es als erste hausübungen natürlich ein wortsuchspiel (mein prof ist da etwas übermotiviert)
Zur aufgabe:
wir sollen eine art "wortsuchspiel" implementieren
Dazu werden zwei arrays, einmal typ char [] [] und typ string [] angelegt
beim ersteren müsst ihr das euch so ungefähr vorstellen:
LIONWB
SHEEPI
CATSUR
DOGTZD
letzteres enthält die worte, die wir vermuten im wortgitter vorzufinden
meine ersten aufgaben ist nun:
public StringBuilder ndWordsHFw() soll das Wortgitter nach horizontal (waagrecht) in normaler
Leserichtung geschriebenen Worten durchsuchen. So wurde in dem obenstehenden Beispiel
etwa das Wort LION in Zeile 0, Spalte 0 gefunden.
Diese und die folgenden Methoden geben jeweils einen StringBuilder zuruck. Dieser soll fur
jedes gefundene Wort in dieser Methode exakt eine wie folgt aufgebaute Ausgabe haben.
Dabei endet jede Zeile mit einem Zeilenvorschub ("nn"), wobei fur (exakt) ein Leerzeichen
steht:
Found 'LION' at row 0, column 0 orientation horizontal forwards
Bei den anderen Methoden sind die beiden letzten Worter jeweils passend zu ersetzen, wie
dort beschrieben.
meine Idee war nun, dass ich versuche, mit zwei for-schleifen einmal die einzelnen char-elemente mit dem ersten string (indem ich den string in einzlene buchstabe zerlege) vergleiche und schaue, ob diese identisch ist
problem: da es horizontal ist, kann ich mir denken dass ich anscheinend bei der for-schleife zuerst char [0] anfangen muss, nun weiß ich aber nicht was er dann machen soll wenn er auf die zweite zeile übergehen soll
problem 2: was tun wenn das erste wort nicht dem ersten horizontalen char entspricht?
rekursion gibt es in java ja nicht wirklch, bzw wird nicht oft benutzt
problem 3: wie kann ich es dann machen, dass die restlichen worte im string auch noch verglichen werden
ICH BIN ÜBER JEDE HILFE MEHR ALS NUR DANKBAR!!!
Java:
/**
*
* @author
* @version
*/
public class FindHiddenWords {
public FindHiddenWords(char[][] searchThis, String[] hiddenWords) {
//TODO bitte implementieren
}
public String findAllWords() {
//TODO bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
}
public StringBuilder findWordsHFw() {
//TODO bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
}
public StringBuilder findWordsHBw() {
//TODO bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
}
public StringBuilder findWordsVBw() {
//TODO bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
}
public StringBuilder findWordsVFw() {
//TODO bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
}
/**
* the main routine that starts the game
*
* @param args command-line arguments, ignored here
*/
public static void main(String[] args) {
// a simple example grid
char[][] matrix = new char[][]{
{ 'L', 'I', 'O', 'N', 'W', 'B' },
{ 'S', 'H', 'E', 'E', 'P', 'I' },
{ 'C', 'A', 'T', 'S', 'U', 'R' },
{ 'D', 'O', 'G', 'T', 'Z', 'D' }};
// a list of (mostly actual) words "hidden" in the grid
String[] searchFor = new String[] {"BIRD", "CATS", "DOG",
"LION", "NEST", "SHEEP", "NOIL", "RUST", "OAHI", "ZUP", "TEO"};
// create an instance of the game
FindHiddenWords fhw = new FindHiddenWords(matrix, searchFor);
// print the result of "solving the puzzle"
System.out.println(fhw.findAllWords());
}
}